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

标签 python django migration python-3.5 migrate

我正在使用 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/

相关文章:

python - 有没有可以在 Excel 中生成图表的 Python 库?

django - 无法使用以下驱动程序打开数据源 `'

django - 在 django-south 的 startmigration 中使用新的 "--freeze"选项的正确方法是什么?

python - 使用 Docker 创建缓慢的 django 模型实例

django.db.utils.IntegrityError : UNIQUE constraint failed: rango_category__new. slug

php - 如何将博客从非 WordPress 迁移到 WordPress

ruby-on-rails - 每次迁移后是否隐式调用 reset_column_information

python - 无法从 'Bootstrap5' 导入名称 'flask_bootstrap' ?

Python:使用 sklearn 时为 "ValueError: setting an array element with a sequence"

python - 如何避免从元类派生的动态生成的类最终不会成为同一个类?