У меня есть центральный сервер Django, содержащий всю мою информацию в базе данных. Я хочу иметь второй сервер Django, который содержит подмножество этой информации во второй базе данных. Мне нужен пуленепробиваемый способ выборочной синхронизации данных между ними.Синхронизация данных между двумя серверами django
- Вторичный Django должен будет вытащить подмножество данных из первичного в определенное время. Подмножество должно быть отфильтровано по определенным полям.
- Вторичному Django придется время от времени подталкивать свои данные к первому.
- В идеальном случае двусторонняя синхронизация сохранит самые последние измененные объекты для каждой модели.
Я думал что-то вдоль линий, имеющих используя TimeStampedModel (от Джанго-расширений) или добавить свой собственный DateTimeField (auto_now = True), так что каждый объект хранит время последнего изменения. Затем, возможно, механизм для сброса данных из одного БД и загрузки его в другой, чтобы сохранить только более недавно измененные объекты.
Возможности, которые я рассматриваю, - это dumpdata django, django-extensions dumpscript, django-test-utils makefixture или, возможно, магия django-fixture. О чем много думать, поэтому я не знаю, на какую дорогу двигаться дальше.
Вы можете сделать это на уровне базы данных? (например, если вы используете postgres, написав скрипт, что pg_dump/pg_restore, что вам нужно). Если вам нужно что-то пуленепробиваемое, это может быть немного здраво. – bitgarden
создайте вторичное соединение на своем основном сервере django и вызовите его slave. напишите скрипт cron/celery, который работает своевременно и получает данные из ваших таблиц с использованием подключения по умолчанию и сохраняет их с помощью подчиненного соединения. см. это для идеи https://gist.github.com/bofh19/5887902 – boltsfrombluesky
Являются ли эти методы возможность синхронизации двух баз данных по метке времени? –