Django跳过特定的迁移(没有要应用的迁移)

2024-04-19 22:51:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在django1.9开发一个应用程序

我从User模型创建了一个修改过的字段(最大长度从40改为120)。 我知道迁移还没有运行,我可以看到它显然被跳过了。 我似乎不明白为什么会这样。
我确保依赖关系也在适当的地方。
我尝试过的事情:
1-已验证数据库是否显示为“运行”(django_migrations表): 看没有0021_alter_user_lms_user_id

django_migrations table

2-我检查django是否能够看到迁移文件:

django showmigrations command result

我对这个结果感到非常惊讶。 我不能清除我的迁移和数据库,因为这是一个部署了数据的应用程序。在

感谢任何帮助

注:在发布此问题之前,我检查了所有可以找到的相关问题。在


Tags: 文件django模型id数据库应用程序关系migrations
1条回答
网友
1楼 · 发布于 2024-04-19 22:51:30

我自己修复了它,希望它能帮助其他人在Django中遇到相同或类似的问题。在

似乎Django不仅检查迁移是否按文件名运行,而且还通过文件名中的前导数字关注文件的顺序(至少在我的经验中)。
步骤历史:

git branch a:为0021_alter_user_lms_user_id创建迁移,但尚未合并到主节点中。在

git branch b:为0022_toolconsumer_is_vericite_enabled创建了迁移(我认为我应该遵循顺序,并手动在文件名前面加上0022_前缀)

现在在这个分支上运行合并到master中并希望运行迁移时,django会看到文件,但由于0022_假设在0021_之后,所以跳过该文件,而不是实际检查它是否应用于db。在

修复:我基本上将文件名从0021_alter_user_lms_user_id重命名为0023_alter_user_lms_user_id(别忘了更新依赖项),运行了./manage.py migrate,没有出现任何问题。请看图片。在

working migration result screen capture

希望这对某人有帮助。在

相关问题 更多 >