ruby - Rails Postgresql replication via Octopus gem when in Development env -
apparently when using octopus gem postgres replication should plug , play. can't seem find i'm doing wrong.
this config/shards.yml
octopus: environments: - development replicated: true development: slave1: adapter: postgresql host: localhost database: slaveapp_development username: pguser password: pgpass
the ar model provider
(i create exact same tables in each app via rake tasks) i'd sync/replicate slave:
class provider < activerecord::base has_many :products replicated_model() end
i boot both apps via rails server , enter masterapp's console , there:
> provider.using(:slave1).create({provider_params...}) #=> works! new record in slave1's db. > provider.using(:master).create({provider_params...}) #=> works partly. creates record in master's db.
the problem when calling provider.using(:master)...
i'm expecting:
1 - create record @ master's db.
2 - replicate same record @ slave1's db. <--- not happening.
that not purpose of octopus gem.
it redirects database requests, depending on whether read or write operation. way can use rails models without thinking current database connection , if fits intended operation.
it not copy data slaves.
to perform actual replication, i.e. data transfer master slaves, have set yourself.
there several options postgresql. if using newer version (9.1+) can use integrated streaming replication in "hot standby" mode. there tutorials on how set up, e.g.
- http://www.rassoc.com/gregr/weblog/2013/02/16/zero-to-postgresql-streaming-replication-in-10-mins/
- http://prongs.org/blog/postgresql-replication
if stuck older version of postgresql have @ alternatives.
Comments
Post a Comment