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