Ответ 1
TEST_CHARSET
и TEST_COLLATION
переименованы в CHARSET
и COLLATION
и переместились в словарь TEST
в Django 1.8:
DATABASES = {
...
'TEST': {
'CHARSET': 'utf8',
'COLLATION': 'utf8_general_ci',
}
}
Я использую utf-8
общий регистр, нечувствительный для базы данных mysql, но django
создает тестовый db с latin collation
Я установил это:
TEST_CHARSET="utf8_general_ci"
TEST_COLLATION="utf8_general_ci"
В файле настроек, но безрезультатно.
Что еще я должен делать?
TEST_CHARSET
и TEST_COLLATION
переименованы в CHARSET
и COLLATION
и переместились в словарь TEST
в Django 1.8:
DATABASES = {
...
'TEST': {
'CHARSET': 'utf8',
'COLLATION': 'utf8_general_ci',
}
}
в настройках добавить:
DATABASES = {
'default': {
...
'TEST_CHARSET': "utf8",
'TEST_COLLATION': "utf8_general_ci",
}
}
У меня была такая же проблема, и я потратил часы на то, чтобы понять это, пока не заметил, что
TEST_CHARSET
TEST_COLLATION
должен быть частью ДАННЫХ, а не settings.py. Это очень легко смешивать их...
Смотрите здесь: 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',
},
},
}
Взгляните на пример файла настроек здесь: https://docs.djangoproject.com/en/dev/ref/databases/#connecting-to-the-database