Installation

Livrables

PlumePg est une extension PostgreSQL simple, composée de deux fichiers :

  • Un script SQL, qui sert à créer sur la base les objets nécessaires au fonctionnement de l'extension : plume_pg--x.x.x.sql, où « x.x.x » est le numéro de la version.

  • Un fichier de configuration : plume_pg.control.

Ces deux fichiers peuvent être ouverts avec un éditeur de texte.

Préparation de l'installation

Cas d'un serveur Eole/PostgreSQL

Dans le cas d'un serveur de l'offre Eole/PostgreSQL du pôle ministériel, aucune action spécifique n'est à réaliser par l'administrateur de données. Les fichiers de l'extension sont automatiquement distribués sur les serveurs.

ComplémentMécanisme de distribution

Le mécanisme de distribution des fichiers de PlumePg est commun avec celui de l'extension PosgreSQL Asgard, ce qui implique notamment que la désactivation de cette fonctionnalité affecte les deux extensions. On pourra se reporter à la documentation d'Asgard pour plus de précisions.

Autres serveurs

PlumePg est diffusée sur la page Releases du dépôt GitHub, sous la forme d'une archive qui rassemble tous les fichiers nécessaires à l'installation et à la mise à jour depuis les versions antérieures. Dès lors qu'une version de Plume inclut également une nouvelle version de PlumePg, l'onglet dépliable Assets de la version contient une telle archive, avec un nom de la forme plume_pg_[numéro de version].zip.

  • Archive ZIP de l'extension PostgreSQL Plume

Les fichiers devront être extraits de l'archive et copiés dans le répertoire des extensions du serveur PostgreSQL.

ExempleRépertoire par défaut pour PostgreSQL 14 sous Windows

C:\Program Files\PostgreSQL\14\share\extension

ExempleRépertoire par défaut pour PostgreSQL 12 sous Linux

/usr/share/postgresql/12/extension

Activation de l'extension sur une base

Remarque

L'extension doit être installée indépendamment sur chaque base pour laquelle ses fonctionnalités sont jugées utiles. Ses tables de données sont elles aussi spécifiques à une base, ce qui signifie par exemple que pour disposer du même modèle sur plusieurs bases, il faudra copier sa définition dans chacune de ces bases.

L’activation de PlumePg sur une base passe par une simple commande CREATE EXTENSION, qui doit être exécutée par un super-utilisateur (création de déclencheurs sur évènement).

1
2
CREATE EXTENSION plume_pg ;

Il est nécessaire d’activer préalablement l’extension pgcrypto, sur laquelle PlumePg s’appuie pour la génération des UUID qui identifient les jeux de données. Il s’agit d’une extension standard de PostgreSQL, qui est en principe disponible dans toutes les distributions des versions de PostgreSQL compatibles avec PlumePg.

1
2
CREATE EXTENSION IF NOT EXISTS pgcrypto ;
3
CREATE EXTENSION plume_pg ;

Une autre possibilité est d’exécuter la commande CREATE EXTENSION avec l’option CASCADE, ce qui installe automatiquement toutes les extensions marquées comme requises dans le fichier de configuration plume_pg.control.

1
2
CREATE EXTENSION plume_pg CASCADE ;

Truc & astuce

L'activation de PlumePg est l'une des actions proposées par AsgardManager dans son menu Gestion de la base.

Complémentpgcrypto et la génération des UUID

PlumePg se sert de la fonction gen_random_uuid() pour générer des UUID. Pour les versions 10, 11, et 12 de PostgreSQL, elle est fournie par l’extension pgcrypto. Pour les versions 13 et supérieures, cette fonction est incluse dans le cœur de PostgreSQL. Installer pgcrypto n’est donc théoriquement plus nécessaire pour ces versions, et il serait tout à fait admissible de modifier le fichier plume_pg.control pour retirer pgcrypto de la liste des extensions requises et ainsi ne pas avoir à l'activer sur les bases.