Django数据迁移问题

关于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
Django数据迁移问题
然后wq! 保存退出 重启mysql服务