当我们创建数据库,然后进行数据迁移时,发现表错误,我们删除了数据库中的表,同时又删除了migrations中的迁移文件,这时候我们进行迁移会报错:No migrations to apply,最暴力最简单的操作就是删库跑路,但如果不想跑路,解决措施如下:
先执行python manage.py makemigrations 信息如下:
再执行python manage.py migrate 就会报错:
其实当我们迁移文件时,一共会生成三方文件,迁移文件、数据库中的表以及迁移信息的记录
这里我以sqlite数据库举例,打开数据库,找到如下表中的django_migrations表:
打开会看到:
我们生成了一条 迁移的记录,所以数据库会以为我们已经迁移完成,不会在进行迁移操作。
所以我们只需要删除这条记录即可:
再次执行 python manage.py migrate
这时,我们就会迁移成功了。
记住:迁移文件、数据库中的表以及迁移信息的记录这三方删除的时候缺一不可,缺少任何一方都会报错。