Миграция Django South в разные базы данных

Уважает ли South маршрутизаторы баз данных? Я настроил маршрутизаторы так, чтобы определенные приложения направлялись в одну БД, а все остальные приложения — в БД по умолчанию. Я даже убедился, что таблица South migrationhistory есть в обеих БД. Но я не могу заставить Юг применять миграции только в соответствующей БД. т.е. даже когда я бегу на юг с --database, он применяет все миграции к указанной базе данных, а не только миграции из приложения, которое должно перейти в эту БД.

Помощь! Спасибо.


person Overclocked    schedule 27.07.2012    source источник
comment
Посмотрите здесь: south.aeracode.org/ticket/370   -  person benjaoming    schedule 27.07.2012
comment
Кстати, не работает manage.py migrate appname --database dbname?   -  person benjaoming    schedule 27.07.2012
comment
manage.py migrate app --database db работает, но вы не можете выполнить manage.migrate --database db и обеспечить правильную миграцию в нужную БД.   -  person Overclocked    schedule 27.07.2012
comment
Ссылка south.aeracode.org/ticket/370 больше недействительна, так как South устарел в пользу собственных миграций Django.   -  person Mike Stoddart    schedule 15.01.2019


Ответы (1)


«Уважает ли Юг маршрутизаторы баз данных?» Нет.

Проблема в том, что маршрутизатор БД Django направляет запросы к базам данных на основе приложений/моделей, тогда как юг основан на таблицах. Юг действительно не имеет большого представления о том, какой модели соответствует таблица (особенно в истории). Эндрю Годвин в настоящее время работает над модулем contrib для django, который заменит южный и устранит многие из этих проблем, но сейчас вам приходится выполнять большую часть этой работы вручную, используя хакерские методы (--database, .using()) .

Я бы рекомендовал для автоматизации иметь все таблицы во всех базах данных и выполнять все миграции для всех этих баз данных. Просто чтобы убедиться, что все ограничения работают согласованно во всех базах данных.

person Thomas    schedule 02.05.2013
comment
Если этот ответ поможет или проинформирует вас, не могли бы вы отметить его как правильный? - person Thomas; 07.05.2013