我正在django1.9开发一个应用程序
我从User
模型创建了一个修改过的字段(最大长度从40改为120)。
我知道迁移还没有运行,我可以看到它显然被跳过了。
我似乎不明白为什么会这样。
我确保依赖关系也在适当的地方。
我尝试过的事情:
1-已验证数据库是否显示为“运行”(django_migrations表):
看没有0021_alter_user_lms_user_id
2-我检查django是否能够看到迁移文件:
我对这个结果感到非常惊讶。 我不能清除我的迁移和数据库,因为这是一个部署了数据的应用程序。在
感谢任何帮助
注:在发布此问题之前,我检查了所有可以找到的相关问题。在
我自己修复了它,希望它能帮助其他人在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
,没有出现任何问题。请看图片。在希望这对某人有帮助。在
相关问题 更多 >
编程相关推荐