【问题标题】:django test database is not created with utf8django 测试数据库不是用 utf8 创建的
【发布时间】:2012-10-05 08:52:44
【问题描述】:

我对mysql数据库使用utf-8一般不区分大小写,但django使用latin collation创建一个测试数据库

我已经设置好了:

TEST_CHARSET="utf8_general_ci"

TEST_COLLATION="utf8_general_ci"

在设置文件中,但无济于事。

我还应该做什么?

【问题讨论】:

  • 你是否验证了你的设置,然后syncdb

标签: python mysql django testing utf-8


【解决方案1】:

TEST_CHARSETTEST_COLLATION 在 Django 1.8 中重命名为 CHARSETCOLLATION 并移至 TEST 字典:

DATABASES = {
    ...
    'TEST': {
        'CHARSET': 'utf8',
        'COLLATION': 'utf8_general_ci',
    }
}

【讨论】:

【解决方案2】:

在设置中添加:

DATABASES = {
    'default': {
        ...
        'TEST_CHARSET': "utf8",
        'TEST_COLLATION': "utf8_general_ci",
    }
}

【讨论】:

    【解决方案3】:

    请看这里:https://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-DATABASE-TEST

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': <db_name>,
            'USER': <user>,
            'PASSWORD': <password>,
            'HOST': <host>,
            'PORT': <port>,
            'TEST': {
                'NAME': <test_db_name>,
                'CHARSET': 'utf8',
                'COLLATION': 'utf8_general_ci',
            },
        },
    }
    

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,花了几个小时才发现它,直到发现

      TEST_CHARSET
      TEST_COLLATION
      

      应该是 DATABASES 的一部分,而不是 settings.py。 很容易混淆它们......

      https://docs.djangoproject.com/en/dev/ref/settings/#testing

      【讨论】:

        【解决方案5】:

        正如其他人指出的那样,您需要这样的东西来创建数据库

        DATABASES = {
            ...
            'TEST': {
                'CHARSET': 'utf8mb4',
                'COLLATION': 'utf8mb4_unicode_ci',
            }
        }
        

        但您还需要确保您也有类似的东西,以确保您的测试使用适当的字符集与数据库通信。

        DATABASES = {
            ...
            'OPTIONS': {
                'charset': 'utf8mb4'
             }
        }
        

        【讨论】:

          【解决方案6】:

          【讨论】:

          • 这可能会导致链接失效。您应该扩展答案以添加相关信息。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-20
          • 1970-01-01
          • 2020-11-17
          • 2022-01-16
          • 2012-05-20
          相关资源
          最近更新 更多