Синхронизация базы данных mongodb через Dropbox - PullRequest
6 голосов
/ 09 апреля 2011

Я использую базу данных mongodb под названием «mydb» в локальном wep-приложении, которое я разрабатываю, и хочу синхронизировать файлы db через Dropbox, поэтому я буду иметь его на всех моих машинах для разработки.

Всякий раз, когда я вставляю новые данные в базу данных, файлы «mydb.0» и «mydb.ns», похоже, не меняются. Так что Dropbox ничего не синхронизирует. Есть идеи?

Я знаю, это может звучать как ужасная идея, но я единственный пользователь базы данных, и я никогда не запускаю базу данных более чем на одной машине одновременно. Также я не делюсь файлами с кем-либо еще. Нужно просто позаботиться о том, чтобы я мог продолжить работу на другой машине именно там, где я оставил.

1 Ответ

4 голосов
/ 10 апреля 2011

К сожалению, это звучит как ужасная идея.Что если Mongo работает на двух машинах одновременно?Скорее всего, обе базы данных будут повреждены.Лучшим способом было бы написать скрипт, который использовал бы mongodump и mongorestore для выгрузки базы данных в Dropbox и восстановления ее из дампа.Вы должны будете запустить их вручную, хотя.

Причина, по которой вы не видите никаких изменений в файлах базы данных, возможно, заключается в том, что Mongo предварительно выделяет файлы базы данных, поэтому их размер никогда не изменяется, а только содержимое внутри.Возможно, Dropbox этого не обнаружит.Монго также не записывает на диск сразу.Скорее, он использует файлы с отображением в памяти, которые могут быть сброшены позже (хотя это должно занять несколько секунд, поэтому причина не должна быть).

...