2009-07-09 39 views
4

我需要在不同位置的两台台式计算机之间来回迁移一些CouchDB数据库数据。其中一台电脑是Windows XP,一台是运行OS X 10.5的Macintosh电脑。两者都不能通过互联网真实地连接到另一个(PC有防火墙,Mac没有快速的互联网接入)。但我确实有一个USB拇指驱动器,我来回走动。couchdb作为“公文包”:复制和/或数据库转储?

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

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

编辑:好像你要么需要:

  • CouchDB的直接复制到另一个(或相同)的CouchDB服务器
  • 的CouchDB数据库文件从同一版本的CouchDB
  • couchdb-python tools的( “couchdb-dump”和“couchdb-load”),但我无法让他们在WinXP + Python 2.6.2上出于某种原因可靠地工作(转储'工作',但负载说它没有通过完整性检查)

这真令人沮丧。 :/

回答

0

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

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

+0

如果您找到解决方案,请告诉我。 – 2009-07-09 22:12:10

4

已经有发布的Windows的一些实验二进制代码,但是它是CouchDB的的Windows版本很早以前 - 期望的一些问题,如果你是doing a Windows install.

我猜你在Mac在家里,也许在视窗在企业防火墙后面工作。防火墙不应阻塞端口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

将转储从CouchDB的默认端口上运行的数据库名为PROD到名为20090724.dump一个序列化的文件。它将列出它正在输出的每个文档的ID以及任何设计文档。使用couchdb 0.9.1和couchdb-python 0.6.0,这应该在OS X上运行良好(我刚刚在我的Leopard机器上试过)。我建议在Mac上进行此设置并确认步骤,然后再查看相应的窗口。

0

Couchfuse可能是你有兴趣的一种选择。 “Couchfuse是一个FUSE文件系统暴露的CouchDB数据库作为文件系统文件夹”。