Переместить модель Django из одного приложения в другое [дубликат]
На этот вопрос уже есть ответ:
Как перенести модель из одного приложения django в новое? 7 ответовЯ сделал глупую ошибку, создав слишком много моделей в одном приложении Django, теперь я хочу разделить его на 3 отдельные. Проблема в том, что данные уже находятся на производстве на сайтах двух клиентов, поэтому мне нужно тщательно спланировать любую миграцию схемы / данных (я использую django-south). Я не уверен, как поступить, любой совет будет с благодарностью.
(Я использую PostgreSQL на сервере Ubuntu 12.4 LTS, если это имеет какое-либо значение)
Я думал об использованииdb.rename_table
, но не может понять, как правильно обновить внешние ключи для этих моделей (от старых к новым) - не имеет значения на уровне базы данных (поскольку переименование таблицы уже охватило это), но не на уровне ORM.
Обновит: подумав об этом и спросивэтот вопро on programmmers.SE, я решил быть проще и не беспокоиться о переходах между основными версиями продукта. Краткосрочный, я просто буду использоватьdb.rename_table
, чтобы соответствовать новому имени, также используяdb_table
, как предположил Даниэль Роузман, все время сохраняя модели в старом приложении. При обновлении до основной версии я переключаюсь на новое приложение и полностью отказываюсь от всех миграций (поэтому при новой установке новой версии база данных будет создаваться «как есть», а не через все исторические миграции).