Mise à jour de Postgresql sous windows

Mise à jour de PostgreSQL de la version 14 à la version 15 sur Windows Server

Aujourd'hui, nous allons mettre à jour PostgreSQL de la version 14 à la version 15, ce qui est considéré comme une mise à niveau majeure (14->15). Voici les instructions étape par étape pour effectuer cette mise à jour sur Windows.

Étape 1 : Installer PostgreSQL 15

Rendez-vous sur le site officiel de PostgreSQL pour télécharger l'installeur de la version 15 pour Windows.

Installez PostgreSQL 15 sur la machine. Cela créera un dossier séparé dans le répertoire d'installation pour la version 15 par rapport à la version 14.

Il est recommandé de conserver le même mot de passe pour l'utilisateur PostgreSQL.

Étape 2 : Arrêter les services PostgreSQL

Arrêtez les deux versions de PostgreSQL en cours d'exécution sur le système. Utilisez la commande PowerShell suivante :

net stop postgresql-x64-14
net stop postgresql-x64-15

Étape 3 : Configurer les fichiers pg_hba.conf

Dans le répertoire /data (dans notre cas C:\Program Files\PostgreSQL\14\data et C:\Program Files\PostgreSQL\15\data) de chaque version, conservez les fichiers pg_hba.conf existants. Je les renomme généralement en pg_hba.conf.org pour les conserver en sauvegarde.

Ensuite, créez un nouveau fichier pg_hba.conf dans chaque répertoire /data, basé sur les anciens fichiers, avec le contenu suivant pour éviter les problèmes de sécurité pendant la mise à jour :

host    all     postgres        127.0.0.1/32            trust
host    all     postgres        ::1/128                 trust

Assurez-vous que ce nouveau fichier pg_hba.conf inclut également toutes les autres configurations nécessaires à votre environnement, en plus des nouvelles lignes ci-dessus. Cela permet de maintenir les paramètres de sécurité requis tout en facilitant la mise à jour.

Étape 4 : Mettre à jour les données

Nos répertoires binaires se trouvent ici :

  • C:\Program Files\PostgreSQL\14\bin

  • C:\Program Files\PostgreSQL\15\bin

Nos répertoires de données se trouvent ici :

  • C:\Program Files\PostgreSQL\14\data

  • C:\Program Files\PostgreSQL\15\data

Pour mettre à jour les données vers la version 15, nous utiliserons pg_upgrade.exe.

Il est recommandé d'exécuter la commande pg_upgrade.exe dans un répertoire temporaire pour plusieurs raisons importantes :

  • Isolation des Fichiers : En utilisant un répertoire temporaire, vous isolez les fichiers générés pendant le processus de mise à niveau, ce qui facilite leur gestion et évite toute confusion avec les fichiers de données existants.

  • Nettoyage Simplifié : Un répertoire temporaire permet un nettoyage plus simple après la mise à niveau, car vous pouvez supprimer tous les fichiers temporaires sans affecter les fichiers principaux.

  • Prévention des Conflits : L'isolement des fichiers temporaires réduit les risques de conflits avec d’autres opérations ou fichiers critiques, garantissant ainsi une mise à niveau plus fluide.

Pour créer un répertoire temporaire, utilisez les commandes suivantes :

  • PowerShell :

New-Item -Path C:\Temp\PgUpgrade -ItemType Directory
  • Invite de Commandes :

mkdir C:\Temp\PgUpgrade

Une fois le répertoire créé, vous pouvez y exécuter pg_upgrade.exe pour effectuer la mise à niveau en toute sécurité.

& 'C:\Program Files\PostgreSQL\15\bin\pg_upgrade.exe' --old-datadir "C:\Program Files\PostgreSQL\14\data" --new-datadir "C:\Program Files\PostgreSQL\15\data" --old-bindir "C:\Program Files\PostgreSQL\14\bin" --new-bindir "C:\Program Files\PostgreSQL\15\bin" -U postgres

Explication des paramètres :

  • --old-datadir : Chemin vers le répertoire de données de l'ancienne version (PostgreSQL 14).

  • --new-datadir : Chemin vers le répertoire de données de la nouvelle version (PostgreSQL 15).

  • --old-bindir : Chemin vers le répertoire contenant les exécutables de l'ancienne version.

  • --new-bindir : Chemin vers le répertoire contenant les exécutables de la nouvelle version.

  • -U : Nom de l'utilisateur PostgreSQL, généralement postgres.

  • Le symbole & en PowerShell est utilisé pour exécuter une commande dont le chemin pourrait contenir des espaces ou des caractères spéciaux. Il est appelé "call operator" ou "opérateur d'appel".

Le symbole & en PowerShell est appelé "opérateur d'appel". Il est utilisé pour exécuter une commande lorsque le chemin contient des espaces ou des caractères spéciaux. Sans cet opérateur, PowerShell pourrait interpréter le chemin comme une chaîne littérale plutôt que comme une commande.

Étape 5 : Post-Mise à jour

Après une mise à jour réussie, procédez comme suit :

  1. Copiez votre pg_hba.conf de l'ancienne version dans le répertoire de données de la nouvelle version. Supprimez également le fichier .org si vous n'en avez plus besoin.

  2. Mettez à jour le fichier postgresql.conf dans la nouvelle version. L'installation a probablement détecté que le port 5432 était déjà utilisé (par l'ancienne version) et a attribué un autre port, comme 5433. Changez ce port en 5432.

  3. Démarrez le nouveau serveur avec PowerShell :

    net start postgresql-x64-15
  4. Désinstallez l'ancienne version.

  5. Supprimez les données de l'ancienne version si nécessaire.

Après ces étapes, votre serveur devrait être opérationnel avec PostgreSQL 15.

Last updated