Как я создаю базы данных Unicode в PostgreSQL 8.4?

Я установил postgresql-8.4 пакет с опциями по умолчанию. Все хорошо работало, однако мне, может казаться, не удается создать unicode базы данных:

-- This doesn't work
createdb test1 --encoding UNICODE

-- This works
createdb test2

Сообщение об ошибке,

createdb: database creation failed: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) 

является немного озадачивающим, потому что (afaik) я не использую шаблон для создания нового дб, или это implicitely, относящийся к базе данных "пост-ГРЭС" по умолчанию по некоторым причинам?

Или возможно я пропускаю установку в a .conf файл?

14
задан 6 January 2015 в 19:12

3 ответа

Шаблон, к которому это относится, template1, который неявно используется, если Вы не указываете другой шаблон.

Самое быстрое обходное решение состоит в том, что Вы создаете свою базу данных из template0 вместо этого, использование createdb --template=template0.

Можно хотеть отбросить и повторно инициализировать весь кластер с более разумной локалью. Вам, вероятно, установили Вашу операционную систему для использования локали C по умолчанию. Можно повторно инициализировать систему баз данных с этими шагами:

sudo pg_dropcluster --stop 8.4 main
sudo pg_createcluster --locale=en_US.utf8 --start 8.4 main

Используйте любую локаль, которую Вы любите, конечно.

13
ответ дан 23 November 2019 в 03:03

Я думаю, что Вы имеете в виду:

createdb test42 --encoding utf-8

Это должно сделать то, что Вы хотите.

-1
ответ дан 23 November 2019 в 03:03

возможно, Вы должны настроить локаль прежде для создания кластера

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales
3
ответ дан 23 November 2019 в 03:03

Другие вопросы по тегам:

Похожие вопросы: