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