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脚本都走一遍。