显然,当使用 Octopus gem 进行 Postgres 复制时,一切都应该是即插即用的。但是我似乎找不到我做错了什么。
这是我的config/shards.yml
octopus:
environments:
- development
replicated: true
development:
slave1:
adapter: postgresql
host: localhost
database: slaveapp_development
username: pguser
password: pgpass
AR模型Provider
(我通过Rake任务在每个应用程序中创建完全相同的表)我想同步/复制到我的奴隶:
class Provider < ActiveRecord::Base
has_many :products
replicated_model()
end
我通过 Rails 服务器启动这两个应用程序并进入Masterapp的控制台,然后从那里:
> Provider.using(:slave1).create({provider_params...})
#=> works! I get a new record in slave1's DB.
> Provider.using(:master).create({provider_params...})
#=> works partly. Creates record only in master's DB.
问题是,当我打电话时,Provider.using(:master)...
我期待:
1 - 在master的数据库中创建记录。
2 - 在slave1的数据库中复制相同的记录。<--- 这不会发生。