zoukankan      html  css  js  c++  java
  • python+Django+test 测试数据库生成报错

    前提:

    使用Django自带的test进行单元测试。

    问题描述:

    运行:python manage.py test,报错,出现数据库乱码的现象,报错如下:

    Creating test database for alias 'default'...

    Got an error creating the test database: (1007, u"Can't create database 'test_yd_zy_bank'; database exists")

    Type 'yes' if you would like to try deleting the test database 'test_yd_zy_bank', or 'no' to cancel: yes

    Destroying old test database 'default'...

    (1366, u"Incorrect string value: '\xE7\xA4\xBA\xE4\xBE\x8B...' for column 'func_name' at row 1")

    .............

    django.db.utils.InternalError: (1366, u"Incorrect string value: '\xE5\x8A\x9F\xE8\x83\xBD...' for column 'name' at row 1")

    其中name字段加入了中文,导致乱码。

    错误分析:

    test生成的临时数据库默认不是utf8,不支持中文,导致错误。尝试过修改项目数据库的字符编码,并没有效果,因为test使用的数据库数据是临时生成的,并不适用项目配置的数据库

    解决办法:

    在settings.py中添加对database的描述,设置字符编码默认设置:

    'TEST_CHARSET': 'utf8',        
    'TEST_COLLATION': 'utf8_general_ci',

    最后改完如下:

    最后,再次运行python manage.py test,成功。

    补充 :自定义测试数据库名字时的配置如下

  • 相关阅读:
    android 之短信发送
    android 系统之ContentProvider
    android 开发电话拔号
    android 开发笔记
    android 常用权限备份
    在IE中使用Firebug
    常用的公式语言
    ASP.NET程序访问MS SQL的方法
    [News]将有新的代码生成工具集成在designer 8.5.1中
    JS对Lotus域的操作
  • 原文地址:https://www.cnblogs.com/wangyingblock/p/10620883.html
Copyright © 2011-2022 走看看