Cloudant和本地CouchDB安装双向复制



我正在尝试同步本地CouchDB安装中的数据库(Mac上的1.3.1版)和Cloudant上具有主控复制的数据库。

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

本地->Cloudant=工作

Cloudant->Local=不工作

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

谢谢!

最后我发现我只需要从本地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中有两个复制正在运行。

请注意,我也将用户名和密码添加到了本地连接中。这是因为您需要成为授权用户才能复制设计文档。

非常感谢迈克,你的回答帮了我很大的忙!

您可以尝试为源和目标指定完整的URL吗?我认为它看起来像:

#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

如果这对你不起作用,你能复制/粘贴吗:

  • 复制器数据库中文档的正文
  • grep任何带有复制的内容的日志文件

此外,这里还有一个经典的"gotcha",我认为您需要对源数据库和目标数据库都具有"编写器"权限。这可能看起来很奇怪,但这是因为复制器在源和目标上都保存检查点文档,这样下次你要求复制时就不必从头开始了。

最新更新