Esta não é a minha primeira atualização. No passado eu atualizei de 9 para 10 e de 10 para 11. Eu pensei que tinha anotado tudo da última vez, mas aparentemente não. Na versão 11 meus bancos de dados estão em nl_BE.utf-8
:
List of databases
Name | Owner | Encoding | Collate | Ctype |
-----------+----------+----------+-------------+-------------+
glewlwyd | glewlwyd | UTF8 | nl_BE.utf-8 | nl_BE.utf-8 |
postgres | postgres | UTF8 | nl_BE.utf-8 | nl_BE.utf-8 |
prda | postgres | UTF8 | nl_BE.utf-8 | nl_BE.utf-8 |
template0 | postgres | UTF8 | nl_BE.UTF-8 | nl_BE.UTF-8 |
template1 | postgres | UTF8 | nl_BE.utf-8 | nl_BE.utf-8 |
(5 rows)
Após a instalação ( apt-get install postgresql-12
) modifico o /etc/postgresql/12/main/postgresql.conf
e mudo o en_US.UTF-8
para nl_BE.UTF-8
. Nas atualizações anteriores, copiei este arquivo para o meu diretório de dados, mas 12 não parece gostar disso. O número da porta da versão 11 e 12 é diferente.
Quando crio o banco de dados com /usr/lib/postgresql/12/bin/initdb --locale=nl_BE.UTF-8 --pgdata=/srv/postgres/data/12
a nova instância é criada mas os bancos de dados estão em en_US.UTF-8
. O /usr/lib/postgresql/12/bin/pg_upgrade -b /usr/lib/postgresql/11/bin -B /usr/lib/postgresql/12/bin -d /srv/postgres/data/11 -D /srv/postgres/data/12
fim sem erro.
Quando me conecto à instância, meus próprios bancos de dados não estão lá. Deve ser porque a localidade não está correta. Eu também mudei a localidade ( export LANG=nl_BE.UTF-8
) do meu shell, mas isso não ajudou. O que eu poderia ter feito de errado?
Eu segui o comentário de @Colin 't Hart e isso resolveu o problema. Com
pg_upgradecluster -v 12 11 main /srv/postgres/data/12
a atualização foi feito. Mudei a porta para5432
e reiniciei. Agora meus aplicativos estão usando o banco de dados da versão 12.