【发布时间】:2014-08-25 13:59:51
【问题描述】:
我有一个项目设置使用南进行迁移。到目前为止,我们已经对模型进行了几次更改,并且没有遇到任何问题。刚才我去向我的一个模型添加一个字段,但我在让它正确迁移时遇到了一些麻烦。更改模型后我运行:
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
我需要做什么才能完成迁移?
【问题讨论】:
-
它重新添加了一些字段的事实确实很奇怪。一些故障排除问题:您是否更改了模型的名称?您是否指向正确的数据库?如果您查看之前的迁移文件,是否给您任何线索?迁移 0004 是否记录在数据库中?
-
好吧,似乎以前的迁移没有正确应用(正如您提到的一些字段已经迁移)。在创建新的架构迁移之前,您应该确保已应用所有迁移。
-
模型名称没有改变。是的,指向正确的分贝。之前的迁移是由我的合作伙伴执行的。我想知道当这种情况发生时,迁移 .py 文件是否没有被添加到我们的仓库中。如果是这种情况(以前的迁移是在 db 上执行的,但不是由我执行的,而且我从来没有在本地下载该文件)会导致迁移被搞砸吗?
-
@ambi 所有旧迁移都已正确应用。 (尽管是我的搭档而不是我)我知道他们是因为我正在开发依赖于他们的功能。
-
查看您数据库中的
migrations表并找出已应用的迁移。Nothing to migrate消息表示已经应用了一些迁移号 0004..
标签: python django django-south