Fra PostgreSQL-dokumentation:
En anden almindelig årsag til at kopiere skabelon0 i stedet for skabelon1 er, at nye kodnings- og landestandardindstillinger kan angives, når man kopierer skabelon0, hvorimod en kopi af skabelon1 skal bruge de samme indstillinger, som den gør. Dette skyldes, at skabelon1 kan indeholde kodningsspecifikke eller lokalspecifikke data, mens skabelon0 vides ikke at gøre det.
Du kan kun bruge template0
for at oprette en ny database med anden kodning og lokalitet:
CREATE DATABASE newdb
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'zh_CN.UTF-8'
CONNECTION LIMIT = -1
TEMPLATE template0;
Dette vil virke, men det betyder, at alle ændringer du har foretaget i template1
vil ikke blive anvendt på nyoprettet database.
For at ændre kodning og sortering af template1
du skal først slette template1
og opret derefter en ny skabelon template1
fra template0
. Hvordan man dropper skabelondatabasen er beskrevet her. Derefter kan du oprette en ny database template1
med valgt kodning/sortering og marker det som en skabelon ved at indstille datistemplate=true
(eksempel):
update pg_database set datistemplate=true where datname='template1';