2013-06-02 2 views
3

Я просто изменил расположение models.py в каталоге другого приложения. И теперь при использовании на юг, чтобы сделать миграцию, он говорит:Изменить расположение models.py с югом

D:\logos-education-system>manage.py schemamigration core --auto 
You cannot use automatic detection, since the previous migration does not have t 
his whole app frozen. 
Either make migrations using '--freeze core' or set 'SOUTH_AUTO_FREEZE_APP = Tru 
e' in your settings.py. 

D:\logos-education-system> 

Так или иначе, Юг не может связать models.py (в новой папке) с уже в базе данных и по-прежнему там.

Итак, мой вопрос: как я могу забыть юг о старой папке, где находится models.py, и использовать новую папку таким образом, чтобы юг думал, что это всегда есть?

Заранее спасибо.

+0

Вы попробовали синхронизацию после перемещения? –

+0

@RaduGheorghiu да, я сделал. Он говорит то же самое о замораживании. –

ответ

5

С помощью нескольких шагов я сделал это.

  1. Сначала я изменил юг таблицы миграции вручную установить app_name к новому app_name

  2. тогда я пошел во всех текущих миграций .py файлов и изменяет все ocurrencies старой папки в новую один.

  3. Также, все еще в файлах миграции .py, я убедился, что все complete_apps = ['OLD_APP_NAME'] было изменено на complete_apps = ['NEW_APP_NAME'].

  4. Отказ от схемы обычно похож на models.py.

+0

Вы также должны обновить типы контента или что-нибудь, что ссылается на модель вместе с меткой приложения. – lajarre

+0

Contenttypes связан с django. Это не имеет ничего общего с южной миграцией, но система разрешения django. –

Смежные вопросы