我有一个使用南方进行迁移的项目设置。到目前为止,我们已对模型进行了一些更改,并且没有任何问题。刚才我给我的一个模型添加了一个字段,但是我在使它正确迁移时遇到了一些麻烦。更改模型后,我跑了:
python manage.py schemamigration MyApp --auto
哪个输出:
(django_env) C:\Work_Repos\WebWorkspace\Support_Site\supportsite>python manage.py schemamigration MyApp --auto
+ Added field parts_only_notes on MyApp.ProblemTicket
+ Added field hdd_swap on MyApp.ProblemTicket
+ Added field hdd_swap_old_sn on MyApp.ProblemTicket
+ Added field hdd_swap_new_sn on MyApp.ProblemTicket
+ Added field traq_rma on MyApp.ProblemTicket
+ Added field mail_tracking_number on MyApp.ProblemTicket
+ Added field company on MyApp.Person
Created 0004_auto__add_field_problemticket_parts_only_notes__add_field_problemticke.py. You can now apply this migration with: ./manage.py migrate MyApp
似乎没问题。虽然其中一些字段已经迁移,但它们出现的情况很奇怪。
然后我跑了:
python manage.py migrate MyApp
得到这个:
Running migrations for MyApp:
- Nothing to migrate.
- Loading initial data for MyApp.
Installed 0 object(s) from 0 fixture(s)
所以它不会完成迁移。现在,如果我尝试转到管理页面并提取相关模型,我会得到Column Not Found Exception
我需要做些什么才能完成迁移?
答案 0 :(得分:1)
看起来您的合作伙伴创建了另一个0004迁移,.py文件以某种方式丢失,但它已应用于DB。这就是为什么你在新的迁移中获得旧模型的原因(因为它们不在0003迁移中),这就是为什么South认为存在“无需迁移”的原因(因为已经应用了另一个0004迁移)。
您可以向合作伙伴询问丢失的迁移文件或删除新模型,创建新的0004迁移(可能与您的合作伙伴相同),然后重新添加模型并创建新的0005迁移并应用它