A) Primeiro crie um backup de todos os bancos de dados para isso (você pode continuar de B se não precisar de um backup)
- Faça login como usuário postgres
sudo su postgres
- Crie um arquivo .sql de backup para todos os dados que você tem em todos os bancos de dados
pg_dumpall > backup.sql
B) Atualize para o PostgreSQL12
- atualizar pacotes e instalar postgres 12
sudo apt-get update
sudo apt-get install postgresql-12 postgresql-server-dev-12
- Parar o serviço postgresql
sudo systemctl stop postgresql.service
- migrar os dados
/usr/lib/postgresql/12/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/10/main \
--new-datadir=/var/lib/postgresql/12/main \
--old-bindir=/usr/lib/postgresql/10/bin \
--new-bindir=/usr/lib/postgresql/12/bin \
--old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
- Mudar para usuário comum
exit
- Troque as portas das versões antigas e novas do postgres.
sudo vim /etc/postgresql/12/main/postgresql.conf
#change port to 5432
sudo vim /etc/postgresql/10/main/postgresql.conf
#change port to 5433
- Iniciar o serviço postgresql
sudo systemctl start postgresql.service
- Faça login como usuário postgres
sudo su postgres
- Verifique sua nova versão do postgres
psql -c "SELECT version();"
- Execute o novo script de cluster gerado
./analyze_new_cluster.sh
- Retorne como um usuário normal (usuário padrão) e limpe a bagunça da versão antiga
sudo apt-get remove postgresql-10 postgresql-server-dev-10
#uninstalls postgres packages
sudo rm -rf /etc/postgresql/10/
#removes the old postgresql directory
sudo su postgres
#login as postgres user
./delete_old_cluster.sh
#delete the old cluster data
- Parabéns! Sua versão do postgresql agora está atualizada, se tudo funcionar bem em B, não precisamos aplicar o backup, pois já migramos os dados da versão mais antiga para a versão mais recente, o backup é apenas para o caso de algo der errado. l>
OBSERVAÇÃO: Altere o postgresql.conf e o pg_hba.conf conforme sua necessidade
PS :Sinta-se à vontade para comentar seus problemas, sugestões ou quaisquer outras modificações que você gostaria de sugerir