Найти - Пользователи
Полная версия: ./manage.py testserver и кодировка базы
Начало » Django » ./manage.py testserver и кодировка базы
1
romankrv
Здравствуйте.
Задача запустить тестинг-сервер:
то есть выполняю команду:
#python2.5 manage.py testserver

но обработчик выдает ошибку


_mysql_exceptions.Warning: Incorrect string value: ‘\xD0\x9D\xD0\xBE\xD0\xB2…’ for column ‘name’ at row 1

Как я понимаю это связано с кодировками базы.
Вопрос: как задать кодировку utf8 для создаваемой тестовой базы?

конфигурационные файлы
settings.py:
DATABASE_OPTIONS = {"init_command": "SET CHARACTER SET utf8" }
в консоли mysql:
#show variables

выдает следующее:
+---------------------------------+-----------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /usr/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
| completion_type | 0 |
| concurrent_insert | 1 |
| connect_timeout | 10 |
| datadir | /var/lib/mysql/ |
ps
обычную базу (не тестинг) создаю как обычно:
mysql:
# create database mydb character set utf8, но как я понимаю тестинг база создается согласно дефолтным параметрам для кодировочных значений которых не utf8, а где это менять я пока не знаю.


Спасибо
romankrv
В документации http://docs.djangoproject.com/en/dev/ref/databases/#connecting-to-the-database нашел что в файле my.cnf в секции для выбора кодировки нужно написать:

default-character-set = utf8

но данная запись проблему не решила хотя изменила некоторые переменные mysql
#show variables
+---------------------------------+-----------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /usr/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
romankrv
Оказалось все просто – TEST_DATABASE_CHARSET использовать надо. Ошибка ичезло.

Всем спасибо за внимание.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB