Перемещение моделей Django между "приложениями" - легко и быстро

В Django-проекте моей компании наши модели в настоящее время разбросаны примерно по 20 папкам "app" без особых причин. Мы хотели бы объединить их в одно новое приложение (вместе с остальным кодом), чтобы в будущем мы могли рефакторить все части нашей системы по своему усмотрению, не беспокоясь о нарушении границ "app".

Из-за того, как работает Django, простое перемещение модели ломает все. Я потратил часы, читая все, что мог, о различных предлагаемых решениях этой проблемы, и лучшей статьей была:

https://realpython.com/move-django-model/

Пока что я не доволен ни одним из решений, которые мне попадались. Все они слишком обременительны.


Если я сделаю следующее:

  1. Переместите все модели в новое приложение. (Назовем его "newapp".)
  2. .
  3. Обновите все ссылки в коде на предыдущие места. (Включая файлы миграции.)
  4. .
  5. Отключите сайт на минуту.
  6. Запустите скрипт для переименования всех таблиц базы данных с someprevapp_model на newapp_model.
  7. Запустите сценарий для обновления app_label для всех строк в таблице django_content_type.
  8. Разверните последнюю версию кодовой базы, с обновленными расположениями моделей и ссылками.
  9. Включите сайт снова.

У меня получилось, или я что-то упустил?

Вернуться на верх