2013-11-17 15 views
0

Я пытаюсь реализовать проект Django с двумя базами данных. Секретный в основном будет резервным, если что-нибудь случится. Поэтому я просто хочу, чтобы мой код сохранял все как на db, так и на чтение по умолчанию.Django Несколько баз данных

Я пытался использовать маршрутизаторы, но он просто дает возможность писать. Итак, я добавил в каждую модель строку для сохранения в обоих БД. Моя проблема теперь - пользователь Django auth, который я не могу переопределить его функцию сохранения. Я попытался использовать save (using = "second_db"), но он генерирует исключения, говорящие, что theres уже пользователь с этим именем пользователя.

Любые идеи, как это должно работать?

ответ

1

Вы можете использовать репликацию базы данных. Mysql и postgresql способны это сделать. Читайте о репликации master-slave. http://www.postgresql.org/docs/9.2/static/high-availability.html

Удвоение данных на уровне приложения является накладным. Что, если вы решите добавить третью базу данных по какой-либо причине? Поэтому вам нужно будет изменить свой код для поддержки этой третьей базы данных.

+0

В основном я должен был бы добавить подключение к БД моим настройкам, и он будет реплицироваться там ... Разве django не предлагает какую-либо поддержку для этого? btw мне понадобится seccond DB на удаленном сервере – pedrotorres

+1

Django не поддерживает такую ​​синхронизацию. Я предлагаю вам иметь копию базы данных с использованием репликаций (механизм самого db). Из моего предполагаемого Django есть функция multi-db для использования одного db для чтения другого для записи (например, если у вас есть какая-то старая система и нужно создать какое-то приложение для клея между ними). Также прочитайте предупреждение о типах контента внизу: https://docs.djangoproject.com/en/dev/topics/db/multi-db/ – nickzam

Смежные вопросы