Z dokumentace PostgreSQL:
Dalším běžným důvodem pro kopírování šablony0 namísto šablony1 je to, že při kopírování šablony0 lze zadat nové nastavení kódování a národního prostředí, zatímco kopie šablony1 musí používat stejná nastavení. Je to proto, že šablona1 může obsahovat data specifická pro kódování nebo místní prostředí, zatímco šablona0 je známá, že nikoli.
Můžete použít pouze template0
pro vytvoření nové databáze s jiným kódováním a národním prostředím:
CREATE DATABASE newdb
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'zh_CN.UTF-8'
CONNECTION LIMIT = -1
TEMPLATE template0;
To bude fungovat, ale znamená to, že všechny změny, které jste provedli v template1
nebude použito na nově vytvořenou databázi.
Chcete-li změnit kódování a řazení template1
musíte nejprve smazat template1
a poté vytvořte novou šablonu template1
z template0
. Jak zrušit databázi šablon je popsáno zde. Poté můžete vytvořit novou databázi template1
se zvoleným kódováním/kolováním a označte jej jako šablonu nastavením datistemplate=true
(příklad):
update pg_database set datistemplate=true where datname='template1';