PostgreSQL : Изменение кодировки по-умолчанию для новых таблиц на UTF-8

Password:
createdb: database creation failed: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
HINT:  Use the same encoding as in the template database, or use template0 as template.


Когда мы создаем новую базу данных, PostgreSQL фактически просто создает копию имеющегося шаблона базы данных.

Изначально существует два шаблона: template0 и template1. Шаблон template1 используется по-умолчанию при создании новых баз данных. Чтобы изменить кодировку вновь создаваемой базы данных одним из путей является изменение шаблона template1. Чтобы сделать это, подключитесь к командной оболочке PostgresSQL (psql) и выполните следующие действия:

1. В первую очередь необходимо удалить template1. Шаблоны не могут быть удалены, поэтому сначала мы изменим его, как-будто это обычная база данных:
UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';


2. Теперь мы можем удалить его:
DROP DATABASE template1;


3. Следующий шаг – создание новой базы данных из шаблона template0, с новой кодировкой по-умолчанию:
CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';


4. Теперь изменим базу данных template1 чтобы она стала шаблоном:
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';


6. (К сведению) Если Вы не хотите, чтобы кто-либо пользовался этим шаблоном, установите значение datallowconn в FALSE:
UPDATE pg_database SET datallowconn = FALSE WHERE datname = 'template1';


Теперь Вы можете создавать новые базы в кодировке UTF8.

Автор: websiteprojector.ru/?p=151
Читать дальше