关于django生成迁移文件后生成表报错:1050
django.db.utils.InternalError: (1050, “Table ‘django_content_type’ already exists”)
根据网上的说法,
第一步删除migrations文件夹是下面的所有文件
也可以:
找到文件的路径,rm -rf * 全部删除
第二步找到 对应数据库中的管理记录迁移文件修改的数据表:
这是表里面的数据
我们直接强硬一点:
因为有两种方式,有的人说只要删除不匹配的映射就行,但是果断点就全删除!
接下来:
我们就可以执行:
生成迁移文件的命令了:
python manage.py makemigrations
这一步正常运行:
(再生成迁移文件后,报错后,也可以不做上面两步操作,直接试试下面这个:)
因为我的问题比较棘手,所以直接删了。
接下来:执行:python manage.py migrate booktest --fake
重新全部映射
就可以成功了!
但是!!!!在网上搜索我试过很多类似的方法都解决不了我的问题。。。。
可能是我之前手动删除了迁移文件导致
内部映射出现问题。。。以至于我的models.py里写的属性和数据表中查到的属性都不一样!!! 所以再怎么尝试,都报错 1050:我根本没设置过 yes, models.py里面。。
所以建议大家,没事儿不要乱删迁移文件。。。
针对我这种棘手的现象,搜索了好几天都解决不了,所以直接把数据库删除了 :
drop database xxx; (切记你的数据库里面没啥重要数据,这是下册。。)
之后再删除 所有的迁移文件,重新创建一个新的数据库,然后配置数据库:
之后就常规的:
python manage.py makemigrations
python mange.py migrate
就可以了!!