Imagine your replicator database (default name is _replicator) has the two following documents that represent pull replications from servers A and B:
{ "_id": "rep_from_A", "source": "http://aserver.com:5984/foo", "target": "foo_a", "continuous": true, "_replication_id": "c0ebe9256695ff083347cbf95f93e280", "_replication_state": "triggered", "_replication_state_time": 1297971311 } { "_id": "rep_from_B", "source": "http://bserver.com:5984/foo", "target": "foo_b", "continuous": true, "_replication_id": "231bb3cf9d48314eaa8d48a9170570d1", "_replication_state": "triggered", "_replication_state_time": 1297974122 }
Now without stopping and restarting CouchDB, you change the name
of the replicator database to
another_replicator_db
:
$ curl -X PUT http://localhost:5984/_config/replicator/db -d '"another_replicator_db"' "_replicator"
As soon as this is done, both pull replications defined before, are stopped. This is explicitly mentioned in CouchDB's log:
[Fri, 11 Mar 2011 07:44:20 GMT] [info] [<0.104.0>] Stopping all ongoing replications because the replicator database was deleted or changed [Fri, 11 Mar 2011 07:44:20 GMT] [info] [<0.127.0>] 127.0.0.1 - - PUT /_config/replicator/db 200
Imagine now you add a replication document to the new replicator
database named another_replicator_db
:
{ "_id": "rep_from_X", "source": "http://xserver.com:5984/foo", "target": "foo_x", "continuous": true }
From now own you have a single replication going on in your
system: a pull replication pulling from server X. Now you change
back the replicator database to the original one
_replicator
:
$ curl -X PUT http://localhost:5984/_config/replicator/db -d '"_replicator"' "another_replicator_db"
Immediately after this operation, the replication pulling from server X will be stopped and the replications defined in the _replicator database (pulling from servers A and B) will be resumed.
Changing again the replicator database to
another_replicator_db
will stop the pull
replications pulling from servers A and B, and resume the pull
replication pulling from server X.