couchdb as";“公文包”:复制和/或数据库转储?

couchdb as";“公文包”:复制和/或数据库转储?,couchdb,database-replication,Couchdb,Database Replication,我需要在不同位置的两台台式计算机之间来回迁移一些CouchDB数据库数据。其中一台是Windows XP,另一台是运行OS X 10.5的Macintosh。两者都不能通过互联网连接到另一方(PC有防火墙,Mac没有快速的互联网接入)。但我有一个USB拇指驱动器,我可以来回拿 有没有一种方法可以为CouchDB进行数据库转储(比如mysqldump for MySQL),这样我就可以从一个数据库导出并导入到另一个数据库?我读过关于数据库复制的文章,但它似乎只存在于两个可以相互通信的实时数据库之间

我需要在不同位置的两台台式计算机之间来回迁移一些CouchDB数据库数据。其中一台是Windows XP,另一台是运行OS X 10.5的Macintosh。两者都不能通过互联网连接到另一方(PC有防火墙,Mac没有快速的互联网接入)。但我有一个USB拇指驱动器,我可以来回拿

有没有一种方法可以为CouchDB进行数据库转储(比如mysqldump for MySQL),这样我就可以从一个数据库导出并导入到另一个数据库?我读过关于数据库复制的文章,但它似乎只存在于两个可以相互通信的实时数据库之间。我可以复制原始数据库文件,但我不确定电脑运行的是哪个版本的CouchDB(不管是什么,它告诉我是0.0.0),Mac运行的是最新版本的,我不确定文件版本是否兼容

CouchDB的复制和版本控制功能对于我的应用程序来说非常有趣,因此我期待着进行此设置

编辑:似乎您需要:

  • couchdb直接复制到另一台(或同一台)couchdb服务器
  • 来自同一版本couchdb的couchdb数据库文件
  • (“couchdb dump”和“couchdb load”)但由于某种原因,我无法让它们在WinXP+Python 2.6.2上可靠地工作(dump“工作”,但load说它无法通过完整性检查)

这真令人沮丧/

Coach DB的一个概念是具有断开连接的信息副本,就像支持分布式信息管理的离线Notes数据库一样。因此,在一个CouchDB实例中有一个断开连接的数据集可能是一种常见情况,该数据集在当时和现在针对其他服务器实例进行复制


在这种配置中,您的应用程序可能会处理任何一个系统中的更改,它至少会检测到冲突,并为您提供处理冲突的机会。这正是我目前正在试验的一种情况,即在我大部分断开连接的笔记本电脑和我在家的“服务器”上都有一组公共信息。

已经有一些针对Windows的实验性二进制文件发布,但对于Windows版本的CouchDB来说,这还为时过早-如果您是这样的话,请期待一些问题

我猜你家里有Mac电脑,也许在公司防火墙后面有Windows操作系统。防火墙不应该阻止端口80。如果您可以从PC远程登录到端口80上的Mac IP地址,则可以通过端口80进行复制

或者,couchdb python包含couchdb转储实用程序。如果您运行的是couchdb 0.9.1,则需要couchdb python 0.6.0来使用couchdb

couchdb转储--version
将确认您的couchdb python版本

比如:

couchdb转储http://localhost:5984/prod >20090724.转储

将从默认端口上运行的couchdb中将名为prod的数据库转储到名为20090724.dump的序列化文件中。它将列出输出的每个文档的id以及所有设计文档

有了couchdb 0.9.1和couchdb python 0.6.0,这一切在OS X上应该都能正常工作(我刚刚在我的Leopard机器上试用过)。我建议在Mac上安装此设置,并确认步骤,然后再查看windows等效程序。

可能是您感兴趣的选项。
“Couchfuse是一个FUSE文件系统,它将Couchdb数据库公开为文件系统文件夹。”

如果找到解决方案,请告诉我。