因为在本地开发一直是使用的sqlite数据库,随时删除和重建,当信心满满的将本地全部测试通过的代码部署到服务器跑单元测试的时候却出现了一堆测试不通过的例子,发现都实在创建数据的时候提示Incorrect string value: '****.' for column ***
,google了好久,也有人说是数据库编码的问题,可是我一直是create database *** default character set utf8
这样创建数据库的啊,而且正常的生成数据,不是测试状态的时候就没问题。后来仔细看了看django的调试页面,发现一个隐藏的设置项目,TEST_CHARSET
,然后指定它为utf8
就好了。
就是这样
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '',
'PORT': '',
"TEST_CHARSET": "utf8",
}
}