将Couchbase同步适配器连接到CouchDB服务器。

3

如何将couchbase同步适配器连接到couchdb服务器?文档只说明如何使用couchbase服务器,然后使用“管理员控制台”,而couchdb没有此功能。当我运行以下命令时:

sync_adapter -url 192.168.1.xx/mydb 

它返回一个错误。

在你说“做不到”的之前,这里有一段来自couchbase文档的引用:

“Couchbase Lite可以通过Sync Gateway与运行Apache CouchDB和Couchbase Server的服务器同步。”


只是为了确认一下,您正在尝试将Sync Gateway连接到CouchDB服务器吗?这是不可能的:它只能由Walrus文件存储或Couchbase Server支持。您为什么想要这样做呢? - dysbulic
@Will 那么请解释一下文档中的这句话:“Couchbase Lite 可以通过 Sync Gateway 与运行 Apache CouchDB 和 Couchbase Server 的服务器进行同步。” - Devon M
4个回答

3
Couchbase Lite与CouchDB复制兼容,你可以像在Couchbase上使用Sync Gateway一样使用它。这里混淆了三个不同的工具:
  1. Sync Gateway,实际上是Couchbase Server和CouchDB API之间的适配器
  2. CouchDB是另一个数据库
  3. Couchbase Lite是移动数据库解决方案
更清楚地说,Couchbase Lite是用于移动平台的文档存储数据库,从API的角度来看,它完全像CouchDB。由于CouchDB具有良好且美观的复制算法,可以通过HTTP API(是的,您只需要互联网连接即可进行同步),因此Couchbase Lite的作者发现它很方便并使用了它。接下来,由于Couchbase数据库使用二进制协议进行同步(而不是HTTP复制),因此他们为此制作了Sync Gateway以进行“HTTP API”同步。
我不确定您是否能够使用CouchDB复制Sync Gateway(由Walrus或Couchbase支持),但是您肯定可以使用Sync Gateway和/或CouchDB复制您的Couchbase Lite。
简而言之:
- CouchDB = 带有HTTP API的数据库,可进行所有操作, - Couchbase = 数据库,二进制协议(=您需要为其安装驱动程序), - Sync Gateway = Couchbase上的HTTP API, - 或者您可以说 - Couchbase + Sync Gateway = CouchDB,并且 - Couchbase Lite = 移动设备的CouchDB

0

我认为你不能这样做 - 请注意,Couchbase Server是CouchDB的重大演变/分支, 因此两者现在有很大的不同。

是否可能将CouchDB更改为能够连接到Couchbase Sync Gateway? 可能,但据我所知还没有人这样做过。


然еҗҺи§ЈйҮҠж–ҮжЎЈдёӯзҡ„иҝҷеҸҘиҜқпјҡвҖңCouchbase LiteеҸҜд»ҘйҖҡиҝҮSync GatewayдёҺиҝҗиЎҢApache CouchDBе’ҢCouchbase Serverзҡ„жңҚеҠЎеҷЁеҗҢжӯҘгҖӮвҖқ - Devon M
Sync Gateway代理Couchbase Server并管理修订信息。它是一个couch实例,您应该能够对其进行复制。我正在开发一个基于Cordova的应用程序(https://github.com/wholcomb/habit_tracker),运行Couchbase Lite,我已经将其复制到了CouchDB。我正在将其转换为Couchbase的过程中。 - dysbulic

0

同步/复制是CouchDB内在的特性。 它有自己的复制协议。(http://docs.couchdb.org/en/latest/intro/overview.html?highlight=replication)

根据您的应用程序/目标,您可以直接将数据同步/复制到CouchDB,而无需使用couchbase同步适配器。

Couchbase Lite(IOS和Android版本)可以直接与Couchdb同步/复制。 两个CouchDB实例可以直接相互同步/复制。 Pouchdb可以直接与其他Pouchdb实例或Couchdb同步/复制。

只有当您需要让couchbase同步/复制时才需要couchbase同步适配器。


怎么做呢?根据我所了解的,Couchbase Lite 只能通过 Sync Gateway 进行同步。 - Devon M
这里是一些示例代码,用于将Couchbase Lite实例复制到CouchDB。链接 - dysbulic

0

sync_gateway -bucket mydb -url http://name:pass@localhost:8092

sync_gateway -bucket mydb -url http://name:pass@localhost:8092


等一下,在这个页面上,你既回答了问题,又说“无法完成”,那到底是哪一个? - Devon M
这就是您设置Sync Gateway以针对Couchbase Server运行的方式。它不适用于CouchDB。 - dysbulic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接