Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django跳过特定迁移(无需应用迁移)_Python_Django_Migration_Python 3.5_Migrate - Fatal编程技术网

Python Django跳过特定迁移(无需应用迁移)

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是否能够看到迁移文件: 我对这个结果感到非常惊讶。 我无法清除迁移

我正在Django 1.9上开发一个应用程序

我从
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
,工作时没有任何问题。请看图片

希望这对别人有帮助