关于django生成迁移文件后生成表报错:1050

mac2026-04-19  7

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 就可以了!!

最新回复(0)