在Django学习中,出现No migrations to apply问题。
在model模型中,新建一个类(表),运行python manage.py migrate时报No migrations to apply,在数据库中查看该表也未生成。
(django_env) d:\pro_soft\Anaconda\bj22\test5>python manage.py makemigrations
No changes detected
(django_env) d:\pro_soft\Anaconda\bj22\test5>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, booktest, contenttypes, sessions
Running migrations:
No migrations to apply.
image.png
原因:要建表的迁移已存在,没检测到变化,故没有生成表,所以要删除0001_initial。
(1)找到记录django迁移的表 django_migrations。
image.png
(2)查看表中的内容,但这么多initial该删哪个?找到app的列,看应用名即可。
image.png
(3) 查看 “booktest”的应用名下的迁移的具体操作,在项目的目录下输入
image.png
python manage.py sqlmigrate booktest 0001
即可查看到创建的表
image.png
(4) 删除该记录。
image.png
(5)再重新运行迁移步骤。
python manage.py makemigrations
python manage.py migrate
image.png
(6)再回到mysql中查看表的生成,表已生成。
image.png
网友评论