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

47 篇文章 2 订阅

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

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值