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 :
É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 :
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 :
Invite de Commandes :
Une fois le répertoire créé, vous pouvez y exécuter pg_upgrade.exe
pour effectuer la mise à niveau en toute sécurité.
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éralementpostgres
.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 :
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.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.Démarrez le nouveau serveur avec PowerShell :
Désinstallez l'ancienne version.
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