Django数据迁移问题

本文总结了在Django项目中遇到的两种常见错误:因重复列名导致的InternalError及因数据库编码问题引发的InternalError。文章详细介绍了错误产生的原因及三种解决方案,包括修改迁移文件、调整数据库字符集和更新配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于django.db.utils.InternalError报错问题总结@](个人爬坑心得)

django.db.utils.InternalError:

我遇到这个报错是在一个Django项目数据迁移时遇到的,一共遇到两种,如下所示:

django.db.utils.InternalError: (1060, “Duplicate column name ‘addr_id’”)

这是我遇到报错,意思是说在迁移文件中有重复的列名。是我在重复迁移所致,你也有可能在一个多版本的项目,但是使用同一个数据库,也会出现这个问题。解决方法有两种

  1. 在你的迁移文件找到改字段,然后将其注视掉,最后重新迁移就ok 了,但是如果在你的模型设计里你用了外键,你可能找不到那个列名,这个时候建议用第二种方法
  2. 第二种方发就是,将你的迁移文件和数据库全部删除,然后重新建数据库和迁移。

django.db.utils.InternalError: (1366, "Incorrect string value: '\xE7\x8E\x8B\xE

这种报错是由于,你的数据库的编码不是utf8,但是你在迁移文件时向mysql数据库中写入数据时包含中文
解决方法:
一: 更改你的数据库的字符集
alter database 库名 character set utf8;
或者你知道你的那个表里有中文直接更改对应表的字符集
alter table 表名 character set utf8;
二:还是删除数据库
create database databasename default character set utf8 collate utf8_general_ci;
然后迁移
python manage.py migrate

三: 更改配置
sudo vi /etc/mysql/mysql.conf.conf.d/
在如下位置加入:character_set_server=utf8
在这里插入图片描述
然后wq! 保存退出 重启mysql服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值