Как разделить сервер чтения БД и сервер записи БД на django 0.97?

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


person Bharath    schedule 31.01.2011    source источник
comment
Как и ожидалось, у вас возникнут серьезные проблемы с получением какой-либо помощи при использовании очень новой функции Postgresql с такой древней версией Django...   -  person Glenn Maynard    schedule 31.01.2011
comment
Никогда не было такой вещи, как Django 0.97. Предположительно, вы запускаете какую-то неизвестную проверку между 0,96 и 1,0. Почему вы не можете обновиться?   -  person Daniel Roseman    schedule 31.01.2011


Ответы (1)


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

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

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

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

person Kekoa    schedule 31.01.2011