Как разделить сервер чтения БД и сервер записи БД на django 0.97? - PullRequest
0 голосов
/ 31 января 2011

Я использую версию Django 0.97 с postgresql 9.0.Я настроил горячую потоковую репликацию на главном сервере базы данных и подчиненном сервере базы данных.Мое приложение имеет тяжелые бот-управляемые записи в БД и читает только от пользователей.Таким образом, это делает его очень оптимизированным, если я сделаю ведомую базу данных с правами на чтение для пользователей и ведущую базу данных с правами на запись для доступа для записи бота.К сожалению, только Django 1.2 имеет поддержку нескольких баз данных, и это огромное усилие для обновления в моем приложении.Некоторые ссылки были получены по следующей ссылке: http://www.eflorenzano.com/blog/post/easy-multi-database-support-django/ Однако для этого также необходимо изменить все экземпляры доступа к базе данных в моем приложении.Есть ли какой-нибудь более простой способ назначить отдельные серверы БД для доступа на чтение и на запись, возившись с модулем django core db?

1 Ответ

1 голос
/ 31 января 2011

Лучше всего обновиться до 1.2, поскольку это будет значительно меньше работы, чем хакерство вместе уже существующих функций. Если вы будете придерживаться 0,97 гораздо дольше, ваша жизнь будет только труднее в будущем.

Полагаю, у вас могут быть некоторые неправильные представления о том, как использование нескольких БД работает в Django 1.2. Вам не нужно «изменять все экземпляры доступа к БД в [вашем] приложении», если вы используете функцию Маршрутизаторы баз данных Django.

С помощью маршрутизатора вы можете указать, какую базу данных использовать для чтения и записи. Все ваши существующие модели django должны работать и начать отправлять запросы в соответствующую базу данных. Установить маршрутизатор довольно просто, просто проверьте docs . Все, что требуется, это создать класс маршрутизатора, поместить его куда-нибудь, а затем добавить строку в настройках.

Это работает очень хорошо и не так много работы, как вы можете ожидать. У вас могут быть другие проблемы с обновлением, о которых вы не сообщаете, но с моделями у вас проблем быть не должно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...