Nous avons installé PostgreSQL version 15 dans un article précédent. Nous allons réaliser la mise à jour de PostgreSQL vers la dernière version. La version 16.
L’installeur Windows pour la mise à jour de PostgreSQL
Nous prenons l’installeur windows surt le site d’entreprisedb. Nous prenons la version Windows x86-64.
Une fois le téléchargement effectif, nous lançons l’installeur.
L’installation est maintenant terminée, nous n’ajoutons pas les outils complémentaires :
Vérification de la mise à jour de PostgreSQL
Nous pouvons maintenant vérifier l’installation et la disponibilité de PostgreSQL.
- psql –version ‘version de postgreSQL active
- psql -U postgres ‘connection à postgres avec le compte postgres/postgres
- \du ‘ liste des utilisateurs
- \q ‘quitter postgreSQL
C:\Users\broussel>psql --version psql (PostgreSQL) 15.4 C:\Users\broussel>psql -U postgres Mot de passe pour l'utilisateur postgres : psql (15.4, serveur 16.1) ATTENTION : psql version majeure 15, version majeure du serveur 16. Certaines fonctionnalités de psql pourraient ne pas fonctionner. Attention : l'encodage console (850) diffère de l'encodage Windows (1252). Les caractères 8 bits peuvent ne pas fonctionner correctement. Voir la section « Notes aux utilisateurs de Windows » de la page référence de psql pour les détails. Saisissez « help » pour l'aide. postgres=# \du Liste des r¶les Nom du r¶le | Attributs | Membre de -------------+---------------------------------------------------------------------------------+----------- postgres | Superutilisateur, CrÚer un r¶le, CrÚer une base, RÚplication, Contournement RLS | {} postgres=# \q C:\Users\broussel>
Nous voyons que psql –version donne la version de psql, et c’est à la connexion que nous constatons que postgreSQL est bien utilisé dans la version 16.1 que nous venons d’installer.
Utilisation de PostgreSQL
Les principales commandes utilisées pour psql sont les suivantes :
- psql –version ‘connaitre la version de psql
- psql -U postgres ‘pour se connecter en tant qu’utilisateur username: postgres
- \c ‘pour vérifier la connexion
- \c customer_dev ‘pour se connecter à la base customer_dev
- \connect customer_dev ‘se connecter à notre base de données customer_dev
- \d ‘ liste les tables de la base customer_dev
- \d customers ‘ liste les colonnes de la table customers
- \conninfo
- \du ‘liste des utilisateurs
- \l ‘liste des base de données
- \q ‘pour quitter postgres
postgres=# \conninfo Vous êtes connecté à la base de données « postgres » en tant qu'utilisateur « postgres » sur l'hôte « localhost » (adresse « ::1 ») via le port « 5432 ». postgres=# \q
Lorsque nous avons le message suivant :
DETAIL: The data directory was initialized by PostgreSQL version 9.2, which is not compatible with this version 9.0.4.
Nous pouvons aller changer dans le path la version de Postgres utilisée. Pour ce faire nous devons potentiellement arrêter Postgres dans la liste des tâches windows.
Administration et mise à jour de PostgreSQL
Pour utiliser Postgres dans Windows, nous avons besoin de configuer :
- le path qui permet d’indiquer la version avec laquelle nous souhaitons travailler,
- le port qui utilisé par PostgreSQL pour se connecter.
- nous devons aussi pouvoir arreter et relancer le service PostgreSQL dans Windows.
Arrêter et démarrer le service PostgreSQL dans Windows
Nous avons besoin de pouvoir arreter PostgreSQL en tant que service pour pouvoir changer le port utilisé, puis redémarrer le service.
L’accès aux service windows est activable par services.msc. Dans la zone de recherche nous indiquons services.msc, permettant d’ouvrir la fenêtre Services Application :
Nous utilisons le bouton droit de la sourie pour afficher le menu (1) permettant de Démarrer, Arrêter ou Relancer PostgreSQL dans la version souhaitée : ici, version 15 ou version 16.
Mise à jour du path pour PostgreSQL
Le path est accéssible en indiquant path dans la boite de recherche Windows.
Nous allons dans Variables d’environnement, puis sous variable système, nous choisissons [Modifier…] en ayant pris soin de selectionner la ligne Path.
Une fois les changements effectués sur la ligne, il faut valider 3 fois avec [OK].
Mise à jour du port du service PostgreSQL
Le port utilisé par postgreSQL se déclare dans le fichier postgresql.conf qui se trouve dans le dossier :
- C:\Program Files\PostgreSQL\16\data ‘pour la version 16
On relance le service avec services.msc. Cela permet la prise en compte le changement de port par le service PostgreSQL.
Message apparaissant lors d’une mauvaise configuration
Lorsque nous utilisons psql en ligne de commande, le numero de la version s’affiche. Lorsque deux numéro différents s’affichent, l’un concerne l’executable psql et l’autre le service PostgreSQL (ligne 3 ci-dessous) :
C:\Users\broussel>psql -U postgres Mot de passe pour l'utilisateur postgres : psql (15.4, serveur 16.1) ATTENTION : psql version majeure 15, version majeure du serveur 16. Certaines fonctionnalités de psql pourraient ne pas fonctionner. Attention : l'encodage console (850) diffère de l'encodage Windows (1252). Les caractères 8 bits peuvent ne pas fonctionner correctement. Voir la section « Notes aux utilisateurs de Windows » de la page référence de psql pour les détails. Saisissez « help » pour l'aide. postgres=# \du
Le path donne la version de psql.exe. Le port par defaut utilisé est le 5432. Parmi les services actifs, celui qui sera utilisé pour PostgreSQL sera celui dont le port est défini dans postgresql.conf à la valeur par defaut 5432.
Changement du port utilisé par Phoenix et Elixir
Par defaut le port utilisé pour PostgreSQL est le 5432. Nous pouvons changer le port utilisé dans la configuration du projet dans le fichier /config/dev.exs :
# Configure your database config :blogset, Blogset.Repo, username: "postgres", password: "postgres", hostname: "localhost", database: "blogset_dev", port: 5433 stacktrace: true, show_sensitive_data_on_connection_error: true, pool_size: 10
Nous avons ajouté la ligne 7 avec port: 5433, afin de forcer le port du service PostgreSQL à 5433 au lieu de 5432 par defaut.
Conclusion
Nous avons installé la mise à jour du serveur PostgreSQL. Nous avons montré ici une installation simplifiée car nous n’avons pas eu besoin de récupérer les données d’une base de données précédente.