Aggiornamento PostgreSQL

l’aggiornamento di PostgreSQL dalla versione 11 alla 12 (per esempio)può essere fatto con i soliti

sudo apt-get update
sudo apt-get install postgresql-12 postgresql-server-dev-12

installando il nuovo pacchetto e modificando i file

/etc/postgresql/11/main/postgresql.conf
/etc/postgresql/12/main/postgresql.conf

modificando le porte, ma i dati ?
Dopo aver stoppato il servizio con un

sudo systemctl stop postgresql.service

eseguire questo comando come utente postgres

sudo su postgres
/usr/lib/postgresql/12/bin/pg_upgrade \
  --old-datadir=/var/lib/postgresql/11/main \
  --new-datadir=/var/lib/postgresql/12/main \
  --old-bindir=/usr/lib/postgresql/11/bin \
  --new-bindir=/usr/lib/postgresql/12/bin \
  --old-options '-c config_file=/etc/postgresql/11/main/postgresql.conf' \
  --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf' \
  --check

una volta che tutto è a posto, possiamo eseguire la migrazione rieseguendo il comando di prima, ma SENZA il –check, cioè

/usr/lib/postgresql/12/bin/pg_upgrade \
  --old-datadir=/var/lib/postgresql/11/main \
  --new-datadir=/var/lib/postgresql/12/main \
  --old-bindir=/usr/lib/postgresql/11/bin \
  --new-bindir=/usr/lib/postgresql/12/bin \
  --old-options '-c config_file=/etc/postgresql/11/main/postgresql.conf' \
  --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'

Avremo in questo modo fatto il dump del db, verificato la configurazioe ed importati i db della 11.

Ora si possono modificare i file di configurazione postgresql.conf e mettere le porte giuste.
Far ripartire il db con

sudo systemctl start postgresql.service

e verificare quale versione di postgresql è in esecuzione con questi comandi

sudo su postgres
psql -c “SELECT version();”
./analyze_new_cluster.sh
exit

infine fare un pò di pulizia

apt list –installed | grep postgresql
sudo apt-get remove postgresql-11 postgresql-server-dev-11
sudo rm -rf /etc/postgresql/11/
sudo su postgres
./delete_old_cluster.sh

Fatto !

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.