django破碎的makemigrations

时间:2015-05-13 13:44:04

标签: django django-models database-migration

我在django项目中添加了我的新应用程序。之后,我进行了迁移并迁移它。然后我在模型中更改了一些字段,在尝试创建一些实例后,这个字段出错了。所以在那之后我犯了一个可怕的错误并删除了这个应用程序中的所有迁移,现在我无法进行新的迁移。

我有这样的错误:"迁移...依赖性引用不存在的父节点"旧应用中的一些地方。但这种迁移是存在的。

1 个答案:

答案 0 :(得分:1)

如果您需要删除迁移,则应在删除迁移之前运行反向迁移。因此,如果你正在迁移0004并且你犯了一个错误,并且希望返回,那么与之前的迁移相反,例如。

python manage.py migrate myapp 0003

这会将myapp的数据库表带到他们所处的状态以进行迁移0003。

如果您想要更正某些内容,或者为您正在制作的功能重新创建初始迁移,并且您不需要保留您创建的测试数据,则应该运行;

python manage.py migrate myapp zero

这将在myapp的所有迁移中运行向后迁移,包括初始迁移。

如果您删除了所有迁移文件,并且现在想要对该应用程序的迁移执行某些操作,则必须删除数据库中与您的应用程序相关的表,然后从迁移表中删除这些行({ {1}})与您的应用中的任何迁移相关,只需重新创建初始迁移。

迁移表中的行如下所示;

django_migrations

所以只需在该表中查找您的应用名称。