为什么没有检测到迁移但我刚刚创建了新的迁移?

Why there is no migrations detected but I just created new migrations?

这是我的工作流程,使用 makemigrationsmigrate 一切看起来都很整洁。但是,我想重新开始我的模型,所以我:

  1. rm -rf django 应用目录下的所有迁移文件;
  2. 删除数据库中所有相关的 table;
  3. makemigrations 生成新的迁移文件;

但是当我想将它迁移到数据库中时,它说没有要应用的迁移。我认为迁移背后的机制是模型 -> 迁移 -> 数据库更改,如果我删除后两个它应该重新开始。可惜不是。

Django == 1.8.2

CLOSED 有一个名为 django-migrations 的 table 跟踪所有更改并删除相关记录,然后我可以进行迁移。感谢那些提供帮助的人!

还有另一个 table 跟踪每个应用 运行 的迁移,django_migrations。你必须重置它,以便 django 知道你已经重新开始。

如果您已经更改了数据库,请尝试 运行

python manage.py migrate <app> --fake zero