因为在本地开发一直是使用的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",
}
}
在本地使用sqlite数据库进行开发时未遇到编码问题,但部署到服务器后出现测试失败,原因是数据库编码设置不一致。通过调整配置项TEST_CHARSET为utf8解决了问题。
866

被折叠的 条评论
为什么被折叠?



