Example #1
0
URL = 'http://*****:*****@localhost:5984/'
c = Client( url=URL )
if 'db1' in c : del c['db1']
if 'db2' in c : del c['db2']
if 'db3' in c : del c['db3']

db1 = c.create( 'db1' )
db2 = c.create( 'db2' )
db3 = c.create( 'db3' )

fn = "function(doc) {if(doc._conflicts) { emit(doc._conflicts, null);} }"
db1.createdoc( docs=[{ "_id" : "_design/conflicts", "views": { "showconflicts": { "map": fn } }}] )[0]
db1doc = db1.createdoc( docs=[{ '_id' : 'test', 'count' : 1 }] )[0] # version 1 in db1
db1docs = [ deepcopy(db1doc.doc) ]

c.replicate( 'db1', 'db2' )                         # Replicate version 1 in db2
db2doc = Document( db2, 'test', fetch=True )
db2docs = [ deepcopy(db2doc.doc) ]
c.replicate( 'db1', 'db3' )                         # Replicate version 1 in db3
db3doc = Document( db3, 'test', fetch=True )
db3docs = [ deepcopy(db3doc.doc) ]

db1doc.update({ 'count' : db1doc['count']+1 })      # Update version 2 in db1
db1docs.append( deepcopy(db1doc.doc) )
db3doc.update({ 'count' : db3doc['count']+100 })    # Update version 2 in db3
db3docs.append( deepcopy(db3doc.doc) )

db2doc.update({ 'count' : db2doc['count']+10 })     # Update version 2 in db2
db2docs.append( deepcopy(db2doc.doc) )
db2doc.update({ 'count' : db2doc['count']+10 })     # Update version 3 in db2
db2docs.append( deepcopy(db2doc.doc) )