nob*_*be4 7 python django dependencies database-migration
我们正在开发一个Web应用程序,它有一个中央应用程序,以及我们最后添加的新应用程序.
迁移顺序如下:
contenttypes 0001
contenttypes 0002
auth 0001
...
auth 0006
main_app 0001
...
main_app 0045
Run Code Online (Sandbox Code Playgroud)
添加新应用后,迁移的顺序如下:
contenttypes 0001
auth 0001
main_app 0001
...
main_app 0045
contenttypes 0002
auth 0002
...
auth 0006
new_app 0001
Run Code Online (Sandbox Code Playgroud)
有几点值得注意:
new_app.0001 迁移具有依赖关系(按此顺序):
auth.0006
main_app.0045
Run Code Online (Sandbox Code Playgroud)
并且只为用户创建一个外键.
auth.0004 迁移更新用户名,最大长度为30
my_app.0012udpate user.username字段的长度为255(通过一些AlterField衍生类)
因此,由于运行迁移的顺序,如果没有new_app,则生成的user.username长度为30而不是255.
在初始my_app迁移中,我们具有以下依赖关系:
migrations.swappable_dependency(settings.AUTH_USER_MODEL)
Run Code Online (Sandbox Code Playgroud)
(当您更改默认的django用户模型时似乎需要).
问题是: 为什么迁移的顺序会发生变化?怎么预防呢?
注意:我们确实通过在my_app初始迁移中添加依赖项来找到一种"hacky"方法来防止这种情况:
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
auth.0006
Run Code Online (Sandbox Code Playgroud)
但我们认为这不是一个可行的解决方案,所以我们正在寻找一个更好的解决方案.
| 归档时间: |
|
| 查看次数: |
5692 次 |
| 最近记录: |