Назад | Перейти на главную страницу

Настройка trac с PostgreSQL - Как установить кодировку UTF8?

Итак, я искал установить трассировка на моем сервере debian с PostgreSQL. Я настраиваю все согласно документации, но при попытке запустить trac-admin /path initenv Я получаю эту ошибку для кодировки базы данных:

DataError: character 0xe282ac of encoding "UTF8" has no equivalent in "LATIN1"

При дальнейшем чтении (и после того, как я увидел, что все мои базы данных настроены на кодировку "LATIN1"), мне кажется, что мне нужно перейти на UTF8, но как я могу это сделать?

Если я создам свою базу данных так:

createdb -U user -O user -E UTF8 trac

Я получил:

createdb: database creation failed: ERROR:  encoding UTF8 does not match server's local en_GB
DETAIL: The server's LC_CTYPE setting requires encoding LATIN1.

Похоже, это должно быть легко исправить, изменив кодировку, но после небольшого поиска я понятия не имею, как это сделать!

Кажется, у вас в кластере базы данных есть локаль LATIN1. Когда вы настраиваете кластер, вы можете добавить --locale параметр - см. этот документ для получения дополнительной информации. Ваши базы данных будут созданы в соответствии с этим параметром.

Некоторые параметры локали вы можете установить в файле конфигурации. Например мои настройки из /etc/postgresql/9.1/main/postgresql.conf:

lc_messages = 'cs_CZ.UTF-8'                     # locale for system error message strings
lc_monetary = 'cs_CZ.UTF-8'                     # locale for monetary formatting
lc_numeric = 'cs_CZ.UTF-8'                      # locale for number formatting
lc_time = 'cs_CZ.UTF-8'