Postgres pgAdmin 4: Installation et configuration

Postgres pgAdmin 4 est une évolution majeure de l’outil d’administration avec interface graphique du serveur de base de données PostgreSQL. Il est destiné à succéder à pgAdmin 3. Cette nouvelle version est dotée de deux modes de fonctionnements:

  • Le mode station de travail qui est un mode local à une machine de bureau.
  • Le mode Web qui est un mode serveur (web) destiné pour les machines serveurs.
Concrètement il s’agit, à peu de choses près, du même logiciel mais configuré différemment pour chaque mode de fonctionnement. Techniquement c’est une application Python qui fonctionne soit en autonome pour le mode station de travail ou en mode hébergé par un serveur web pour le mode serveur. Pour les système Debian et compatibles, c’est l’installation qui fait la différence entre les deux modes. Cet article fait partie d’une série qui concerne le serveur de bases de données PostgreSQL et son utilisation dans un environnement de développement:
  1. Installation de base de PostgreSQL
  2. Utiliser Postgres pgAdmin 3 pour administrer PostgreSQL
  3. Installer PostgreSQL 10
  4. Reconfigurer l’installation par défaut de PostgreSQL 10
  5. Utiliser PostgreSQL 10 dans un environnement de développement
  6. Postgres psql pour administrer le serveur PostgreSQL
  7. Cet article: Postgres pgAdmin 4 : installation et configuration
  8. Postgres pgAdmin 4: Utilisation courante

1. Installation de Postgres pgAdmin 4

Il s’agit dans tout le reste de ce tutoriel de la version station de travail, car il s’agit toujours du poste de travail d’un développeur d’application. Pour installer Postgres pgAdmin 4 en mode station de travail exécuter:
sudo apt install pgadmin4
Cette commande installe également un environnement Python s’il n’est pas déjà installé. Des difficultés peuvent apparaître pour exécuter l’application si des conflits de versions, typiques de cet environnement, apparaissent. Dans ce cas, une solution envisageable consiste à désinstaller pgAdmin 4 et toutes les versions de Python installées sur le système. Après cela ré-exécuter la commande d’installation de pgAdmin 4. Toutefois cette solution n’est applicable que si aucune version de Python (notamment moins récente que celle installée avec pgAdmin 4 qui est actuellement la 2.7.13) n’est indispensable par ailleurs. Postgres pgAdmin 4 n’est pas disponible (Août 2018) sur le dépôt officiel des systèmes Debian et Ubuntu. L’utilitaire système de gestion des paquets apt doit pouvoir les récupérer à partir du dépôt spécifique de PostgreSQL pour que la commande d’installation réussisse. Pour cela il faudra d’abord configurer cet utilitaire comme indiqué dans le tutoriel d’installation de la version 10 de PostgreSQL (§ Versions disponibles pour le système installé).

2. Considération générale sur le fonctionnement

L’application pgAdmin 4 s’utilise par l’action des différents menus graphiques disponibles. Il existes deux types principaux de menus:
  • Le menu principal qui se trouve dans la barre d’en-tête de la fenêtre de l’application. Dans ce menu les principales commandes se trouvent dans le menu Object. Les différents menus peuvent être actifs ou non (grisés) selon les droits de l’utilisateur paramétré pour la connexion au serveur. Par exemple, si cet utilisateur n’a pas le droit de créer des bases de données, le menu Object / Create / Database.. sera toujours inactif.
  • Le menu contextuel à un nœud du volet gauche. Ce menu s’obtient par la sélection du nœud concerné (serveur, BDD, table..) dans le volet gauche de l’interface, ensuite cliquer sur le bouton droit de la souris. Ce menu affiche la liste des actions possibles spécifiques à l’objet sélectionné.
Dans la suite de ce tutoriel il convient d’effectuer l’une ou l’autre de ces démarches pour mener l’action demandée.

Paramétrer un groupe de serveurs

postgres pgadmin Au premier lancement de pgAdmin 4, un groupe de serveurs Servers, vide, est paramétré. Cet objet apparaît dans le volet gauche de l’interface. L’objet groupe de serveurs dans pgAdmin, est un conteneur d’organisation de l’affichage. Il ne correspond pas à un objet réel du serveur de base de données. On va commencer par donner un nom significatif à cet objet: postgres pgadminAfficher le menu contextuel du groupe de serveurs et sélectionner Properties.. postgres pgadmin Dans la fenêtre qui s’affiche, modifier le contenu du champ Name en “Serveurs de développement” et cliquer sur le bouton Save pour enregistrer. Pour créer d’autres groupes de serveurs, si besoin, utiliser le menu contextuel d’un groupe de serveur existant: Create / Server Group... Ce menu affiche la même fenêtre utilisée pour la modification du nom. Saisir le nom et enregistrer.

3. Paramétrer un serveur de base de données

postgres pgadmin Afficher le menu contextuel de l’objet Serveurs de développement puis sélectionner: Create / Server… Ceci affiche la fenêtre de paramétrage d’un nouveau serveur. postgres pgadmin Saisir le nom du serveur dans le champ Name: “Serveur local“.postgres pgadmin Ensuite passer à l’onglet Connection (à sélectionner en haut de la fenêtre). Dans cet onglet renseigner les valeurs des champs comme indiqué. Pour rappel le mot de passe de l’utilisateur utappli est mputappli. Après la saisie enregistrer avec le bouton Save. Ce sont les mêmes paramètres de connexion utilisés pour psql et dont les valeurs doivent correspondre à ceux du serveur PostgreSQL à paramétrer.

4. Améliorer le fonctionnement de pgAdmin 4

4.1. Les problèmes

Se connecter au serveur nouvellement paramétré, si ce n’est pas déjà fait: menu contextuel du serveur et sélectionner Connect server. Après l’activation de la connexion, on peut accéder aux objets du serveur: postgres pgadmin
  1. Le tableau de bord (à droite) s’anime avec des graphiques d’information sur le fonctionnement.
  2. Tous les objets du serveurs sont visibles dans le volet gauche.
Il n’est pas recommandé de garder cet affichage par défaut: 1. L’affichage des graphiques est coûteux en ressources pour le serveur sans que l’information ne soit très utile, notamment dans un environnement de développement. Pour s’en rendre compte, exécuter la commande système dans une console:
tail -f /home/jdupond/pgtest.log
Cette commande permet de suivre l’avolution du contenu du fichier de log du serveur. Elle permet dans notre cas de constater que plusieurs requêtes SQL sont exécutées en permanence. L’exécution continue de ces requêtes s’arrêtera si on se déconnecte du serveur (Menu contextuel de Serveur local puis Disconnect sever). Si vous ne constatez pas l’exécution des requêtes dans le fichier de log comme indiqué, c’est que la génération des logs n’est pas configurée comme il est souhaité. Dans ce cas suivre la procédure expliquée dans l’article sur l’utilisation de PostgreSQL dans un environnement de développement, pour activer ce paramétrage. 2. L’affichage dans le volet gauche est trop chargé. Souvent, on n’a besoin d’afficher qu’un nombre limité de types de données. Ceci permet d’avoir une information beaucoup plus lisible dans l’interface.

4.2. Les solutions

Pour désactiver l’exécution de ces requêtes, on modifie le paramétrage de l’affichage du tableau de bord: postgres pgadmin Pour accéder à cette fenêtre de paramétrage, utiliser le menu: File / Preferences, puis sélectionner Dashboards / Graphs dans le volet de gauche. Par défaut le temps de rafraîchissement des graphiques est paramétré à 1 seconde. Ceci explique l’exécution fréquente des requêtes qui récupèrent les données de ces graphiques. Modifier toutes les valeurs à 999999. Cela désactive l’exécution des requêtes mais aussi l’affichage des graphiques. postgres pgadmin Pour accéder à cette fenêtre de paramétrage utiliser le menu: File / Preferences, puis sélectionner Browser /Nodes dans le volet gauche. Pour désactiver l’affichage d’un élément il suffit de cliquer sur l’icone Show dans le volet droit, qui se transforme alors en Hide. Désactiver de la même manière tous les éléments sauf: Columns, Databases, Schemas , Sequences et Tables. Enregistrer avec le bouton Ok. Après la validation de ce paramétrage, rafraîchir l’affichage: Sélectionner le serveur dans le volet gauche (Serveur local) ensuite actionner le menu contextuel Refresh.. postgres pgadmin L’affichage apparaît maintenant avec les informations sélectionnées seulement.  ]]>