django mysql数据迁移发生错误:django.db.utils.InternalError: (1067, "Invalid default value for 'job'")

django.db.utils.InternalError: (1067, "Invalid default value for 'job'")

django mysql数据迁移发生错误:django.db.utils.InternalError: (1067,

查看models.py里面关于job的定义,发现其default值为中文

我就觉得可能是mysql不支持中文字符的储存,在mysql客户端执行show variables like 'character%';

看看编码是否为utf8,若不是,则需要对mysql配置文件进行修改

打开配置文件:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 

找到[client]添加default-character-set=utf8
找到[mysqld]添加character-set-server = utf8

重启mysql,在命令行先执行net stop mysql57 命令,然后执行net start mysql57 命令

(mysql57看具体的服务名称,可在任务管理器查看)

重启之后执行show variables like 'character%';

django mysql数据迁移发生错误:django.db.utils.InternalError: (1067,

编码已改为utf8

再次执行python manage.py makemigrations

django mysql数据迁移发生错误:django.db.utils.InternalError: (1067,

python manage.py migrate

django mysql数据迁移发生错误:django.db.utils.InternalError: (1067,

数据迁移成功!

若在再次执行迁移时出现重复字段等错误,则需要在mysql中把相应数据表删除,再迁移!

好了,到此为止,希望对你有帮助!

你可能感兴趣的:(python)