Cloudant和本地CouchDB安装2路复制

时间:2013-07-19 14:44:51

标签: couchdb cloudant

我正在尝试在本地CouchDB安装(Mac上为v 1.3.1)和Cloudant上的数据库同步主 - 主复制。

在我的本地Futon http://localhost:5984/_utils中,我已将Replicator配置为将本地数据库复制到Cloudant。一切都可以很好地从本地数据库复制到Cloudant,但不能倒退。如果Cloudant数据库中的数据发生更改,则这些更改不会复制到我的本地数据库。

本地 - > Cloudant =工作

Cloudant - > Local =不起作用

这可能吗?有人可以帮忙吗?

谢谢!

2 个答案:

答案 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

如果这对您不起作用,请复制/粘贴:

  • _replicator数据库中文档的正文
  • 使用_replication
  • grep日志文件

此外,这里有一个经典的“陷阱”,我认为你需要对源数据库和目标数据库都有“编写者”权限。这可能看起来很奇怪,但这是因为复制器正在源和目标上保存检查点文档,以便下次要求复制时,它不必从头开始。