Django удаляет и воссоздает модель вместо переименования - PullRequest
0 голосов
/ 09 мая 2020
class ModelA:
    pass

class ModelB:
    model_a = ForeignKey(ModelA)

Если я хочу переименовать ModelA в ModelANew, вот стратегия Django Далее:

  1. Миграция 1: Создать ModelANew
  2. Миграция 2:
    • Удалить поле model_a из ModelB.
    • Добавить поле model_a_new в ModelB
  3. Миграция 3: Удалить ModelA

Очевидным недостатком этого является то, что информация в таблице modela потеряна. Можно ли это сделать с переименованием модели? Django явно не спрашивал, было ли это переименование. Можно ли сообщить или сделать go по этому маршруту? Если нет, то какой была бы стратегия ручного кодирования миграции.

1 Ответ

0 голосов
/ 09 мая 2020

Миграция 1.

Создать Модель Новая модель.

Миграция 2.

Создать перенос данных . Перенести данные в новую модель.

Миграция 3.

Удалить старая модель .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...