gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:04 25 4
gpt4 key购买 nike

我正在使用 Django 1.9 开发应用

我从 User 模型创建了一个更改字段(max_length 从 40 到 120)。我知道迁移还没有运行,我可以看到它明显被跳过了。我似乎无法理解为什么会这样。
我确保依赖项也到位。
我尝试过的事情:
1- 验证数据库没有将其表示为运行(django_migrations 表):看到没有 0021_alter_user_lms_user_id

django_migrations table

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

django showmigrations command result

我对这个结果感到非常惊讶。我无法清除我的迁移或数据库,因为这是一个已部署的包含数据的应用程序。

感谢任何帮助

注意:在发布这个问题之前,我检查了所有我能找到的相关问题。

最佳答案

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

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

git branch a:为 0021_alter_user_lms_user_id 创建迁移并且还没有合并到 master 中。

git branch b:为 0022_toolconsumer_is_vericite_enabled 创建了迁移(认为我应该按照顺序手动为文件名添加前缀 0022_)

现在,我将 git branch b 合并到 master 并运行迁移。所以现在当我将 git branch a 合并到 master 中并想要运行迁移时,django 看到文件但是因为 0022_ 应该在 0021_ 之后,跳过文件而不是实际检查它是否应用于数据库。

修复:我基本上将文件名从 0021_alter_user_lms_user_id 重命名为 0023_alter_user_lms_user_id(不要忘记更新依赖项)并运行 。/manage.py migrate 并且没有任何问题。查看图像。

working migration result screen capture

希望这对某人有帮助。

关于python - Django 跳过特定的迁移(没有要应用的迁移),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com