octopus
octopus copied to clipboard
Named scopes is not working on shards
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
@thiagopradi I'm sorry to bother you, but can you help me?
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
same issue here!