Как переименовать приложение в Django?

Добрый день!

С разрастанием моего проекта возникла необходимость разбить его на несколько приложений.
Если я создам новое приложение, перенесу в него нужные модели и сделаю миграцию, то старая база удалится, и создастся новая. Не рассчитав это я потерял часть данных на сервере, когда деплоил. Подскажите, пожалуйста, как сделать это не потеряв данные, но при этом переименовать таблицу из [old_app]_table в [new_app]_table?
  • Вопрос задан
  • 510 просмотров
Пригласить эксперта
Ответы на вопрос 2
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
В последних версиях Django можно разделить реальные операции и те, которые придумывает для вас Django. С переименованием таблиц даже проще: задаете в модели имя таблицы, переименовываете модель, меняете имя таблицы. Django это успешно определяет как переимнование.
С перемещением между приложениями будет сложнее, ведь надо объяснить Django, что в БД ничего делать не надо.

Но тут есть нюанс: если в процессе накатывания миграции с переименованием таблиц что-то пойдет не так, то часть сайта будет недоступна. Собственно, 500х вы отгребете в любом случае, если на сайте в процессе раскатки релиза будет кто-то сидеть.
Ответ написан
Комментировать
@Shecspi Автор вопроса
Прошу прощения за поздний ответ. Только сейчас заметил уведомление. Решил проблему в лоб - разбил проект на приложения и через консольную утилиту sqlite3 вручную переименовал таблицы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы