我正在尝试在本地CouchDB安装(Mac上为v 1.3.1)和Cloudant上的数据库同步主 - 主复制。
在我的本地Futon http://localhost:5984/_utils
中,我已将Replicator配置为将本地数据库复制到Cloudant。一切都可以很好地从本地数据库复制到Cloudant,但不能倒退。如果Cloudant数据库中的数据发生更改,则这些更改不会复制到我的本地数据库。
本地 - > Cloudant =工作
Cloudant - > Local =不起作用
这可能吗?有人可以帮忙吗?
谢谢!
答案 0 :(得分:5)
最后我发现我只需要从本地CouchDB配置两个复制。
以下是两次重复:
{
"source":"https://username:pwd@username.cloudant.com/cloud_db",
"target":"http://username:pwd@localhost:5985/local_db"
}
{
"source":"http://username:pwd@localhost:5985/local_db",
"target":"https://username:pwd@username.cloudant.com/cloud_db"
}
现在,在http://localhost:5984/_utils/status.html
中有两个重复运行。
请注意,我也将用户名和密码添加到本地连接。这是因为您需要成为授权用户才能复制设计文档。
非常感谢Mike,你的回答很有帮助!
答案 1 :(得分:4)
您可以尝试为源和目标指定完整的网址吗?我认为它看起来像:
#create the replicator database for your local server
curl -X PUT 'http://127.0.0.1:5984/_replicator'
然后上传此文档:
{
"source":"https://username:pwd@username.cloudant.com/source_db",
"target":"http://127.0.0.1:5985/target_db"
}
然后你应该能够通过以下方式监控:
http://127.0.0.1:5984/_active_tasks
如果这对您不起作用,请复制/粘贴:
此外,这里有一个经典的“陷阱”,我认为你需要对源数据库和目标数据库都有“编写者”权限。这可能看起来很奇怪,但这是因为复制器正在源和目标上保存检查点文档,以便下次要求复制时,它不必从头开始。