在迁移中指定app依赖项

Sho*_*hoe 6 python django django-migrations

我正在尝试在Django 1.7中添加初始数据,并且我已经读过建议使用数据迁移.

我已正确创建了我的迁移文件,称为"0001_groups",我在其中创建了少量contrib.auth的组和权限.

问题是它在auth迁移运行之前运行.

我去了解应用程序最后一次迁移auth的名称,并且它被称为0005_alter_user_last_login_null.py.所以我试过:

dependencies = [
    ('auth', '0005_alter_user_last_login_null'),
]
Run Code Online (Sandbox Code Playgroud)

但我得到:

KeyError:u"迁移appname.0001_groups依赖项引用不存在的父节点('auth','0005_alter_user_last_login_null')"

我用谷歌搜索了这个错误,它总是链接到11个月的Django修复错误.

如何正确指定auth应用依赖?

Sho*_*hoe 15

我发现您可以使用以下命令引用上次迁移__latest__:

dependencies = [
    ('auth', '__latest__'),
]
Run Code Online (Sandbox Code Playgroud)

  • 但是,一般情况下,您不希望*引用最新的迁移.如果你的模型的`ForeignKey`稍后被删除怎么办?您的迁移将中断.使用像`django.contrib.auth`这样的稳定​​包不太可能,但它仍然是不好的做法,并没有给你带来任何好处. (2认同)

Kev*_*nry 3

您正在使用1.7但正在查看master源代码树。看看这个并尝试一下0001_initial

  • 如果“0001_initial”确实是您想要的,则可以使用“__first__”。 (2认同)