Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 30, 2009 20:47:45

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

./manage.py testserver и кодировка базы

Здравствуйте.
Задача запустить тестинг-сервер:
то есть выполняю команду:
#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, а где это менять я пока не знаю.


Спасибо

Офлайн

#2 Май 1, 2009 00:12:46

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

./manage.py testserver и кодировка базы

В документации 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 |

Офлайн

#3 Май 1, 2009 00:30:29

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

./manage.py testserver и кодировка базы

Оказалось все просто – TEST_DATABASE_CHARSET использовать надо. Ошибка ичезло.

Всем спасибо за внимание.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version