现象

执行

python manage.py migrate

时,系统提示

No migrations to apply.

但是数据库中仍然没有迁移后的表格。

解决方案

执行

python manage.py dbshell

进入 dbshell 。执行

SELECT * FROM django_migrations

发现将要执行的迁移脚本的 id 已经添加在表中了,将其删除即可。

原因

发现是之前按照某个说明执行了一次

python manage.py migrate --fake

导致的。--fake 的含义是不执行该迁移脚本但是标记该脚本已经被执行过。导致之后无法正常进行迁移。