A) Skapa först en säkerhetskopia av alla databaser för det (du kan fortsätta från B om du inte behöver en säkerhetskopia)
- Logga in som postgres-användare
sudo su postgres
- Skapa en backup .sql-fil för all data du har i alla databaser
pg_dumpall > backup.sql
B) Uppgradera till PostgreSQL12
- uppdatera paket och installera postgres 12
sudo apt-get update
sudo apt-get install postgresql-12 postgresql-server-dev-12
- Stoppa postgresql-tjänsten
sudo systemctl stop postgresql.service
- migrera data
/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'
- Byt till vanlig användare
exit
- Byt ut portarna med den gamla och nya postgres-versionen.
sudo vim /etc/postgresql/12/main/postgresql.conf
#change port to 5432
sudo vim /etc/postgresql/10/main/postgresql.conf
#change port to 5433
- Starta postgresql-tjänsten
sudo systemctl start postgresql.service
- Logga in som postgres-användare
sudo su postgres
- Kontrollera din nya postgres-version
psql -c "SELECT version();"
- Kör det genererade nya klusterskriptet
./analyze_new_cluster.sh
- Återgå som en normal (standardanvändare) användare och städa upp i den gamla versionens röra
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
- Grattis! Din postgresql-version är nu uppgraderad. Om allt fungerar bra i B, behöver vi inte använda säkerhetskopian eftersom vi redan har migrerat data från den äldre versionen till den nyare versionen, säkerhetskopieringen är bara ifall något går fel.
OBS: Ändra postgresql.conf och pg_hba.conf enligt dina krav
PS :Kommentera gärna dina problem, förslag eller andra ändringar du vill föreslå