Python Django跳过特定迁移(无需应用迁移)
我正在Django 1.9上开发一个应用程序 我从Python Django跳过特定迁移(无需应用迁移),python,django,migration,python-3.5,migrate,Python,Django,Migration,Python 3.5,Migrate,我正在Django 1.9上开发一个应用程序 我从Usermodel创建了一个字段(最大长度从40改为120)。 我知道迁移没有运行,我可以看到它显然被跳过了。 我似乎不明白为什么会这样。 我确保依赖关系也在适当的位置。 我尝试过的事情: 1-已验证数据库未将其表示为运行(django_migrations表): 请参阅没有0021\u alter\u user\u lms\u user\u id 2-我检查django是否能够看到迁移文件: 我对这个结果感到非常惊讶。 我无法清除迁移
User
model创建了一个字段(最大长度从40改为120)。
我知道迁移没有运行,我可以看到它显然被跳过了。
我似乎不明白为什么会这样。
我确保依赖关系也在适当的位置。
我尝试过的事情:
1-已验证数据库未将其表示为运行(django_migrations表): 请参阅没有
0021\u alter\u user\u lms\u user\u id
2-我检查django是否能够看到迁移文件:
我对这个结果感到非常惊讶。
我无法清除迁移或数据库,因为这是一个已部署的带有数据的应用程序
谢谢你的帮助
注意:在发布此问题之前,我检查了我能找到的所有相关问题。我自己修复了它,希望这能帮助其他遇到Django相同或类似问题的人 看起来,Django不仅检查迁移是否按文件名运行,而且还根据文件名中的前导数字关注文件的顺序(至少在我的经验中是这样)。
步骤的历史记录: git分支a:为
0021\u alter\u user\u lms\u user\u id
创建迁移,但尚未合并到master中
git branch b:为0022\u toolconsumer\u创建的迁移已启用了\u vericite\u
(我想我应该按照顺序,手动为文件名添加前缀0022\u
)
现在,我将git分支b合并到主迁移中并运行迁移。
所以现在,当我将git分支a合并到master中并想要运行迁移时,django看到了文件,但由于0022
假定在0021
之后,因此跳过该文件,而实际上是检查它是否应用于db
修复:我基本上将文件名从0021\u alter\u user\u lms\u user\u id
重命名为0023\u alter\u user\u lms\u user\u id
(别忘了更新依赖项)并运行了/manage.py migrate
,工作时没有任何问题。请看图片
希望这对别人有帮助