2009-07-09 45 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數據庫作爲文件系統文件夾」。