úterý 21. června 2011

Jak nastavit výchozí kódování v PostgreSQL na UTF-8

Pomocí psql se nejprve přihlaste k PostgreSQL serveru. To obvykle uděláte např. tak, že se přihlásíte na uživatele postgres a pak zadáte psql:

su postgres
psql

Nejprve se můžete porozhlédnout po výchozím kódování vašich šablon, to se provede zadáním

\l

které může zobrazit např. toto

                              List of databases
   Name    |  Owner   | Encoding  | Collation | Ctype |   Access privileges  
-----------+----------+-----------+-----------+-------+-----------------------
 postgres  | postgres | SQL_ASCII | C         | C     |
 template0 | postgres | SQL_ASCII | C         | C     | =c/postgres
                                                      : postgres=CTc/postgres
 template1 | postgres | SQL_ASCII | C         | C     | =c/postgres
                                                      : postgres=CTc/postgres
(3 rows)

Odsud je vidět, že kódování šablony template1 je ASCII. Pro změnu nastavení je třeba šablonu nejprve odstranit

UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
DROP DATABASE template1;

Dál jí znovu vytvořit s tím správným kódováním UTF-8:

CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';

Pro kontrolu můžete zadat opět příkaz \l

\l
                              List of databases
   Name    |  Owner   | Encoding  | Collation | Ctype |   Access privileges  
-----------+----------+-----------+-----------+-------+-----------------------
 postgres  | postgres | SQL_ASCII | C         | C     |
 template0 | postgres | SQL_ASCII | C         | C     | =c/postgres
                                                      : postgres=CTc/postgres
 template1 | postgres | UTF8      | C         | C     |

Zdroje informací
Change Default Encoding of New Databases To UTF-8

Žádné komentáře:

Okomentovat