You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
labnotes/_source/_posts/2018-05-16-add-collation-to...

970 B

layout title date comments categories
post Add collation to Postgres post-initdb 2018-05-16 14:09:15 +0200 true

Note: this is for old Postgres installs that lack the pg_import_system_collations function.

We need to operate as user so that the new collation has the proper ownership. We connect to template1, because by default we can't connect to template0.

$ sudo -u postgres psql -d template1

Now allow ourselves to connect to template0

template1=# UPDATE pg_database SET datallowconn = TRUE WHERE datname = 'template0';
template1=# \c template0

Create collation in the proper schema (pg_catalog). Quote collation name to preserve capitalization.

template0=# CREATE COLLATION pg_catalog."en_US" (LOCALE='en_US.utf8');

Now reset datallowconn to FALSE.

template0=# UPDATE pg_database SET datallowconn = FALSE WHERE datname = 'template0';

Now any database created from the template0 template will inherit the new collation.