解决django迁移数据库时,报错django.db.utils.InternalError: (1050, “Table ‘xxx‘ already exists“)

当遇到Django InternalError,提示表已存在时,可以按照以下步骤解决:1) 显示迁移内容;2) 清除指定应用的迁移历史;3) 手动删除迁移文件,保留__init__.py;4) 再次显示迁移,确认清除;5) 生成新的迁移文件;6) 使用fake-initial进行迁移。遵循这些步骤可避免数据丢失并正确同步数据库。
摘要由CSDN通过智能技术生成

先上报错

django.db.utils.InternalError: (1050, "Table 'xxx' already exists")

按照下面步骤依次执行
python manage.py showmigrations #显示迁移的内容

下面的core是你项目中生成迁移文件的子应用名称
python manage.py migrate --fake core zero #清除迁移历史

再次查看会发现这个子应用下的迁移文件记录已经清除了
python manage.py showmigrations #再次显示

然后需要自己手动删除迁移文件,这里的手动删除指的是migrations文件夹中之前生成的迁移文件

手动删除除了__init__.py之外的所有文件
python manage.py showmigrations #再次显示

最后重新生成迁移文件,并执行最后一步的迁移命令就OK了
python manage.py makemigrations #创建迁移文件
python manage.py migrate --fake-initial #迁移

转 :https://blog.csdn.net/weixin_44575037/article/details/109078101

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值