couchdb作为“公文包”:复制和/或数据库转储?

时间:2009-07-09 21:16:52

标签: couchdb database-replication

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

有没有办法为CouchDB进行数据库转储(比如MySQL的mysqldump),这样我可以从一个导出到另一个导入?我读到了有关数据库复制的信息,但它似乎只能在两个可以相互通信的实时数据库之间进行。我可以复制原始数据库文件,但我不确定PC运行的是什么版本的CouchDB(无论是latest native windows CouchDB installer是什么,它告诉我0.0.0),Mac正在运行最新版本的{{ 3}},我不确定文件版本是否兼容。

复制& CouchDB的版本控制功能对我的应用程序非常有吸引力,所以我期待着这个设置。

编辑:您似乎需要:

  • couchdb直接复制到另一个(或相同的)couchdb服务器
  • 来自相同版本的couchdb的couchdb数据库文件
  • CouchDBX(“couchdb-dump”和“couchdb-load”)但由于某些原因我无法让它们在WinXP + Python 2.6.2上可靠地工作(转储'工作'但负载说它完整性检查失败)

这真令人沮丧。 :/

3 个答案:

答案 0 :(得分:4)

已经发布了一些适用于Windows的实验性二进制文件,但是对于Windows版本的CouchDB来说还是很早 - 如果你是doing a Windows install.

,则会遇到一些问题

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

或者,couchdb-python包含couchdb-dump实用程序。如果您正在运行couchdb 0.9.1,则需要couchdb-python 0.6.0才能使用couchdb。

couchdb-dump --version将确认您的couchdb-python版本

类似的东西:

couchdb-dump http://localhost:5984/prod > 20090724.dump

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

使用couchdb 0.9.1和couchdb-python 0.6.0,这应该在OS X上运行良好(我刚刚在我的Leopard机器上尝试过)。我建议在Mac上进行此设置并确认之前的步骤,然后查看等效的Windows。

答案 1 :(得分:0)

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

在此配置中,您的应用程序可能会处理任一系统中的更改,它至少会检测冲突并让您有机会处理它们。正是这种情况,我目前正在尝试在我家中大部分断开连接的笔记本电脑和我的“服务器”上有一套共同的信息。

答案 2 :(得分:0)

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