平时我们用django的models模块生成数据库表的时候都用这么两个指令:
①python manage.py makemigrations 先生成数据库的脚本(就是在migrations文件夹里面生成一个文件,他会帮你写一个类,而这个类,里面是帮你写好的sql语句)
②python manage.py migrate 这个指令会帮你把前面写好的sql语句同步到数据库,我们就能看到他生成数据库表了。
那么如果我们手欠删了数据表,或者数据表中的内容,然后我们偷偷修改了models里面的内容,以为他同步了。实际上migrations里面生成的文件跟数据库的不同步,他就会报错。
那么这个时候咋解决呢?
我们可以把migrations里面文件做一下状态的变迁:python mangage.py migrate --fake 用这个指令。
这样系统就知道,哦 你删了,那我也把状态跟你同步。
(只针对单表,如果多表进行了关联也是不能删除的。)