django 单元测试 1067, Invalid default value for exist_info

django做单元测试时报错:

python manage.py test

django.db.utils.InternalError: (1067, “Invalid default value for ‘exist_info’”)

百度找了一个错误处理:https://www.smwenku.com/a/5b7cde062b71770a43dcef8e

我的数据库之前有张表有exist_info字段,默认值是中文,后来删除了,在migrations文件里面保存了这些步骤的代码,之所以在migrate过程没报过错却在测试时报错是因为mysql默认字符集不是utf8,但是我建业务数据库的时候设了默认字符集为utf8,django的单元测试会创建一个测试数据库,这个建库过程不设置默认字符集,用的是mysql配置的默认字符集,于是建测试库报错了。

可见django测试时建测试库会把migrate脚本都走一遍。

发布了66 篇原创文章 · 获赞 21 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_35753140/article/details/87601907