Как да разделя db сървър за четене и db сървър за запис на django 0.97?

Използвам версия на Django 0.97 с postgresql 9.0. Конфигурирах репликация с горещо поточно предаване на главен db сървър и подчинен db сървър. Приложението ми има интензивни записи, управлявани от ботове, в DB и чете само от потребителите. Така че, това го прави много оптимизирано, ако направя подчинената база данни за достъп за четене за потребителите и главната база данни за достъп за запис за достъп за запис на бота. За съжаление само Django 1.2 има поддръжка на множество бази данни и това е огромно усилие за надграждане в моето приложение. Получих някои насоки чрез следната връзка: http://www.eflorenzano.com/blog/post/easy-multi-database-support-django/ Това обаче също изисква от мен да променя всички случаи на достъп до db в моето приложение. Има ли някакъв по-прост начин за присвояване на отделни db сървъри за достъп за четене и достъп за запис, като си играете с 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 много по-дълго, животът ви ще бъде само по-труден надолу по пътя.

Предполагам, че може да имате някои погрешни схващания за това как работи използването на множество DB в Django 1.2. Не е нужно да „променяте всички екземпляри на достъп до db във [вашето] приложение“, ако използвате Маршрутизатори на бази данни функция на Django.

С рутер можете да посочите коя база данни да използвате за четене и запис. Всички ваши съществуващи django модели трябва да работят и да започнат да изпращат заявки към правилната база данни. Доста лесно е да настроите рутер, просто проверете документи. Всичко, което се изисква, е да създадете класа на рутера, да го поставите някъде и след това да добавите ред в настройките си.

Работи наистина добре и не е толкова много работа, колкото може да очаквате. Може да имате други проблеми с надграждането, които не ни казвате, но що се отнася до моделите, не би трябвало да имате много проблеми.

person Kekoa    schedule 31.01.2011