Migra­tion d’une version majeure de Post­greSQL à une autre (pour Debian Stretch)

Logo de PostgreSQL

Aver­tis­se­ment Ceci est une réac­tua­li­sa­tion d’un précé­dent article. J’en avais marre de devoir chan­ger les numé­ros de version dans mes copier/coller (quoi, vous ne croyez quand même pas que je me souviens de ces commandes par cœur ?), donc je réac­tua­lise l’ar­ticle, ce sera plus confor­table pour tout le monde.

Nota bene Cet article est main­te­nant dispo­nible sur mon wiki à l’adresse https://wiki.fiat-tux.fr/admin:bdd:pgsql:migra­tion-version-majeure. Le wiki contient une astuce en plus et sera mis à jour. Je vous conseille donc plutôt de le consul­ter plutôt que cette page.

Avec la sortie de Stretch, c’est Post­greSQL 9.6 qui est proposé. Mais comment faire pour migrer les bases de données du clus­ter 9.4 (qui ne rece­vra plus trop d’up­dates) vers le 9.6 ? Ce n’est pas très compliqué.

On stoppe les clus­ters Post­greSQL

service postgresql stop

On vire le clus­ter de la nouvelle version (norma­le­ment vide si on vient juste de l’ins­tal­ler : faire gaffe à ne pas lais­ser passer de temps entre l’ins­tal­la­tion de la nouvelle version et la migra­tion des données, pour que personne n’uti­lise le nouveau clus­ter)

pg_dropcluster --stop 9.6 main

On migre les données

pg_upgradecluster -m upgrade 9.4 main

On teste les applis qui utilisent Post­greSQL Si ça fonc­tionne, on vire les anciennes données

pg_dropcluster 9.4 main --stop

On vire l’an­cienne version de Post­greSQL

apt-get autoremove --purge postgresql-9.4 

Et comme systemd ou Debian (je ne sais pas) a la bonne idée de couper Post­greSQL quand on en supprime une version :

service postgresql start

C’est plutôt simple, n’est-ce pas ?

Source

Migra­tion d’une version majeure de Post­greSQL à une autre

EDIT : J’ai refait cet article pour la migra­tion de Post­greSQL 9.4 à 9.6 (Debian Stretch) ici

Nota bene Cet article est main­te­nant dispo­nible sur mon wiki à l’adresse https://wiki.fiat-tux.fr/admin:bdd:pgsql:migra­tion-version-majeure. Le wiki contient une astuce en plus et sera mis à jour. Je vous conseille donc plutôt de le consul­ter plutôt que cette page.

Avec la sortie de Jessie, c’est Post­greSQL 9.4 qui est proposé. Mais comment faire pour migrer les bases de données du clus­ter 9.1 (qui ne rece­vra plus trop d’up­dates) vers le 9.4 ? Ce n’est pas très compliqué.

On stoppe les clus­ters Post­greSQL

service postgresql stop

On vire le clus­ter de la nouvelle version (norma­le­ment vide si on vient juste de l’ins­tal­ler : faire gaffe à ne pas lais­ser passer de temps entre l’ins­tal­la­tion de la nouvelle version et la migra­tion des données, pour que personne n’uti­lise le nouveau clus­ter)

pg_dropcluster --stop 9.4 main

On migre les données

pg_upgradecluster -m upgrade 9.1 main

On restoppe l’an­cien clus­ter (il a démarré tout seul pour la migra­tion)

service postgresql stop 9.1

On teste les applis qui utilisent Post­greSQL Si ça fonc­tionne, on vire les anciennes données

pg_dropcluster 9.1 main

On vire l’an­cienne version de Post­greSQL

apt-get autoremove --purge postgresql-9.1

C’est plutôt simple, n’est-ce pas ?

Source