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

2 réflexions au sujet de “Migra­tion d’une version majeure de Post­greSQL à une autre”

  1. Bonjour, j’ai lu avec attention article et j’ai fait des essais sans succès car j’ai ce problème (qui reviens) qui est similaire quand je met à jour ma version débian avec « apt-get install && apt-get upgrade » sur une VM. Pourriez vous m’aider svp et m’indiquer la méthode à suivre en réponse comme vous le montrez (cela peux servir aussi à d’autres), je suis débutant.
    J’ai le message d’erreur suivant :
    Version majeure 11 obsolète
    La version 11 de PostgreSQL est obsolète, mais le paquet du client ou du serveur est toujours installé. Veuillez installer la version la plus récente des paquets postgresql-12 et postgresql-client-12 et mettre à niveau les grappes (« clusters ») en version avec « pg_upgradecluster ». Veuillez consulter la page de manuel pour plus de précisions. Veuillez noter que l’installation de postgresql-12 créera par défaut une grappe (« cluster ») 12/main. Si vous souhaitez mettre à niveau la grappe 11/main, il faudra supprimer la grappe 12 en exécutant la commande « pg_dropcluster–stop 12 main ». Veuillez consulter la page de manuel pour plus de précisions.

    Répondre
    • Simple : vous avez, je ne sais pourquoi mais je soupçonne l’ajout des dépôts de PostgreSQL sur votre système, PostgreSQL 12 sur votre système. Pour utiliser cette nouvelle version, il suffit de suivre le tuto sur mon wiki et changeant les numéros de versions du tuto, puisque vous visez la version 12 et non la 11. Faites attention de la version de laquelle vous partez : est-ce la 11 ? Est-ce une version antérieure ? Un moyen simple de le savoir est de faire grep -R 5432 /etc/postgresql : la version qui écoute sur le port 5432 est normalement la version utilisée (et donc contenant les données).

      NB : je vous recommande de faire une sauvegarde de vos données avant de vous lancer dans la migration.

      Répondre

Laisser un commentaire