octopus icon indicating copy to clipboard operation
octopus copied to clipboard

Named scopes is not working on shards

Open zhangliwen opened this issue 7 years ago • 3 comments

Hi, Named scopes are not working on shards. For example please take a look at the below code.

gem info:

gem 'rails', '4.0.9' gem 'activerecord', '4.0.9' gem 'ar-octopus', '0.8.6' ...

class User < ActiveRecord::Base
end

User.using(:shard_name).where(id: [1,2])
=> [Shard: shard_name]  User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` IN (1, 2)

Octopus.using(:shard_name) { User.where(id: [1,2]) }
=> [Shard: master]  User Load (0.4ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` IN (1, 2)

Octopus.using(:shard_name) { User.all }
=> [Shard: master]  User Load (100.4ms)  SELECT `users`.* FROM `users`

the query is going for master DB rather than shard

Help, please! Thanks! Liwen

zhangliwen avatar Sep 13 '17 08:09 zhangliwen

@thiagopradi I'm sorry to bother you, but can you help me?

zhangliwen avatar Sep 13 '17 11:09 zhangliwen

shards.yml:

default: &mysql
  adapter: mysql2 
  reconnect: false 
  pool: <%= Rails.configuration.database_configuration[Rails.env]['pool'] %>
  username: <%= Rails.configuration.database_configuration[Rails.env]['username'] %>
  password: <%= Rails.configuration.database_configuration[Rails.env]['password'] %>
  socket: <%= Rails.configuration.database_configuration[Rails.env]['socket'] %>
  charset: utf8mb4
  encoding: utf8mb4
  collation: utf8mb4_unicode_ci

octopus:
  default_migration_group: biaker_group  
  replicated: false
  fully_replicated: false
  verify_connection: true
  environments:
    - production
  development:
    biaker_group:
      master:
        database: sd_development
        <<: *mysql
      shard_name:
        database: sd_development_shard
        <<: *mysql

zhangliwen avatar Sep 14 '17 01:09 zhangliwen

same issue here!

jairodemorais avatar Jan 08 '18 16:01 jairodemorais