Базы данных Postgres с различной кодировкой - PullRequest
3 голосов
/ 11 мая 2011

Я пытался создать базы данных с другой кодировкой в ​​postgres (я использую PgAdmin в качестве менеджера баз данных), но когда я пытаюсь создать базу данных с кодировкой не UTF8, PgAdmin выдает ошибку, сообщающую, что я не могу создать базу данных, потому что она не соответствует моей текущей локали "Korean_Brazil_1252" и что для конфигурации LC_Ctype требуется кодировка "WIN1252".

Как мне настроить это в PostGres? Я использую его на тестовом сервере с Windows XP (не мой выбор). Можно ли создавать базы данных с другой кодировкой или такое поведение является ограничением PostGres? Кто-нибудь здесь уже имел успех в управлении этим?

Спасибо

1 Ответ

8 голосов
/ 11 мая 2011

Из документов :

Указана кодировка набора символов для новой базы данных должно быть совместим с выбранным языком настройки (LC_COLLATE и LC_CTYPE). Если локаль C (или эквивалентно POSIX), то все кодировки разрешено, но для других настроек локали есть только одна кодировка, которая будет работать должным образом. [...]

Настройки кодировки и локали должны совпадают с данными из базы данных шаблонов, кроме случаев, когда template0 используется как шаблон.

Вы должны быть в состоянии использовать для создания вашей базы данных один из (или оба):

  • с указанием template0 в качестве шаблона (вместо шаблона по умолчанию1)

  • указание корректного LC_COLLATE (попробуйте использовать LC_COLLATE = 'C')

  • указание правильного LC_CTYPE = (попробуйте также использовать LC_CTYPE = 'C')

Вы должны добавить эти настройки в свой оператор CREATE (а PgAdmin позволяет делать это из главного окна формы)

Если вы не знаете о template0 / template1 и хотите знать, читайте здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...