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,成功。

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

  • 相关阅读:
    Advanced Configuration Tricks
    Reviewing the Blog Module
    Editing and Deleting Data
    Making Use of Forms and Fieldsets
    Understanding the Router
    SQL Abstraction and Object Hydration
    Preparing for Different Databases
    Java学习理解路线图
    Openstack学习历程_1_视频
    CentOS安装Nginx负载
  • 原文地址:https://www.cnblogs.com/wangyingblock/p/10620883.html
Copyright © 2011-2022 走看看