couchdb как «портфель»: репликация и / или дамп базы данных? - PullRequest
4 голосов
/ 10 июля 2009

Мне нужно перенести некоторые данные базы данных CouchDB туда и обратно между двумя настольными компьютерами в разных местах. Один из компьютеров - Windows XP, один - Macintosh, работающий под управлением OS X 10.5. Ни один из них не может реально подключиться к другому через Интернет (на ПК установлен брандмауэр, на Mac нет быстрого доступа в Интернет). Но у меня есть флэш-накопитель USB, который я беру взад и вперед.

Есть ли способ сделать дамп базы данных (например, mysqldump для MySQL) для CouchDB, чтобы я мог экспортировать из одного и импортировать в другой? Я читал о репликации базы данных, но, похоже, это только между двумя действующими базами данных, которые могут общаться друг с другом. Я могу скопировать необработанные файлы базы данных, но я не уверен, какая версия CouchDB запущена на ПК (какой бы ни был последний установщик Windows CouchDB для Windows , он сообщает мне 0.0.0), на Mac работает Самая последняя версия CouchDBX , и я не уверен, что версии файлов совместимы.

Функции репликации и управления версиями в CouchDB очень интригуют для моего приложения, поэтому я с нетерпением жду, чтобы это установить.

edit: кажется, что вам либо нужно:

  • репликация couchdb непосредственно на другой (или тот же) сервер couchdb
  • Файлы базы данных couchdb из той же версии couchdb
  • инструменты couchdb-python ("couchdb-dump" и "couchdb-load"), но я не могу заставить их надежно работать на WinXP + Python 2.6.2 по какой-то причине (dump 'работает 'но load говорит, что не проходит проверку целостности)

Это действительно расстраивает. : /

Ответы [ 3 ]

4 голосов
/ 26 июля 2009

Были выпущены некоторые экспериментальные двоичные файлы для Windows, но для версий CouchDB для Windows это очень рано - ожидайте некоторых проблем, если вы делаете установку Windows.

Я предполагаю, что у вас есть Mac дома и, возможно, Windows на работе за корпоративным брандмауэром. Брандмауэр не должен блокировать порт 80. Если вы можете подключиться к IP-адресу Mac на порту 80 с ПК, репликация должна быть возможна через порт 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 . В нем будет указан идентификатор каждого документа, который он выводит, а также любые проектные документы.

С couchdb 0.9.1 и couchdb-python 0.6.0 все это должно хорошо работать на OS X (я только что попробовал это на моей машине с Leopard). Я бы посоветовал установить эту настройку на Mac и подтвердить шаги, прежде чем смотреть на эквивалент Windows.

0 голосов
/ 05 октября 2010

Couchfuse может быть интересующим вас вариантом. «Couchfuse - это файловая система FUSE, которая предоставляет базы данных Couchdb в качестве папки файловой системы».

0 голосов
/ 10 июля 2009

Одной из концепций Couch DB является отключение реплик информации, так же как автономные базы данных Notes поддерживают распределенное управление информацией. Поэтому, вероятно, распространенной является ситуация, когда в одном экземпляре CouchDB отсоединенный набор данных реплицируется тогда и сейчас на другие экземпляры сервера.

В этой конфигурации ваше приложение может иметь дело с изменениями в любой из систем, оно по крайней мере обнаружит конфликты и даст вам шанс разобраться с ними. Именно в этом сценарии я в настоящее время экспериментирую, чтобы получить общий набор информации как о моем в основном отключенном ноутбуке, так и о моем «сервере» дома.

...