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...

35 lines
970 B
Markdown

---
layout: post
title: "Add collation to Postgres post-initdb"
date: 2018-05-16 14:09:15 +0200
comments: true
categories:
---
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.