У меня есть два приложения Django. A
, основное приложение, и B
, которое начиналось как отдельное приложение, но на самом деле лучше вписывается в A
, как мы позже обнаружили. Я могу переместить весь код из B
в A
, но не справляюсь с базой данных.
B
будет удален, поэтому было бы лучше, если бы миграция полностью выполнялась в A
. Таким образом, любой может загрузить последний код и запустить manage.py migrate
, и он будет работать на локальных машинах даже после удаления B
.
Однако данные по-прежнему необходимо перенести с B
на A
при выполнении миграции в производственной базе данных.
Мои попытки
Я пробовал встраивать модели B
в миграцию, запрашивать их (если они существуют), а затем сохранять новые объекты с использованием новых моделей. Это метод, который я раньше использовал с SQLAlchemy. Единственная проблема заключается в том, что Django затем добавляет эти временные модели в django_contenttype
и сообщает мне: «Следующие типы содержимого устарели и должны быть удалены» при следующем запуске миграции. (Я также не знаю, делает ли Django что-нибудь еще, что я мог пропустить.)
Я также попытался установить db_table
в таблицу базы данных старого приложения , как предлагается здесь, но тогда таблица не существует при локальном запуске с нуля. Если я включу CreateModel
миграцию, тогда я получу django.db.utils.OperationalError: table "b_model" already exists
при миграции в существующей базе данных.
Любые идеи?