Démarrage rapide
L’installation d’E-Maj est présentée plus loin en détail. Mais les quelques commandes suivantes permettent de procéder rapidement à une installation et une utilisation sous Linux.
Installation du logiciel
Si le client pgxn est installé, une simple commande suffit :
pgxn install E-Maj --sudo
Sinon :
wget https://api.pgxn.org/dist/e-maj/<version>/e-maj-<version>.zip
unzip e-maj-<version>.zip
cd e-maj-<version>/
sudo make install
Pour plus de détails, ou en cas de problème, allez ici.
Installation de l’extension
Pour installer l’extension emaj dans une base de données, connectez-vous à la base de données cible, en utilisant un rôle super-utilisateur et passez les commandes :
CREATE EXTENSION emaj CASCADE;
GRANT emaj_adm TO <role>;
Pour les versions de PostgreSQL antérieures à la version 9.6, se référer à ce chapitre.
La dernière requête permet de donner les droits d’administration E-Maj à un rôle particulier. Par la suite, vous pourrez utiliser ce rôle pour exécuter les opérations E-Maj sans être connecté comme super-utilisateur.
Utilisation de l’extension
Vous pouvez maintenant vous connecter à la base de données avec le rôle qui possède les droits d’administration E-Maj.
Il faut tout d’abord créer un groupe de tables vide (ici de type ROLLBACKABLE) :
SELECT emaj.emaj_create_group('mon_groupe', true);
On peut alors le garnir de tables et séquences avec des requêtes du type :
SELECT emaj.emaj_assign_table('mon_schéma', 'ma_table', 'mon_groupe');
pour ajouter une table, ou encore, pour ajouter toutes les tables et les séquences d’un schéma :
SELECT emaj.emaj_assign_tables('mon_schéma', '.*', '', 'mon_groupe');
SELECT emaj.emaj_assign_sequences('mon_schéma', '.*', '', 'mon_groupe');
Notez que seules les tables ayant une clé primaire sont affectées à un groupe de tables ROLLBACKABLE.
Ensuite, l’enchaînement typique de commandes
SELECT emaj.emaj_start_group('mon_groupe', 'Mark-1');
[INSERT/UPDATE/DELETE sur les tables du groupe]
SELECT emaj.emaj_set_mark_group('mon_groupe','Mark-2');
[INSERT/UPDATE/DELETE sur les tables du groupe]
SELECT emaj.emaj_set_mark_group('mon_groupe','Mark-3');
[INSERT/UPDATE/DELETE sur les tables du groupe]
SELECT emaj.emaj_rollback_group('mon_groupe','Mark-2');
SELECT emaj.emaj_stop_group('mon_groupe');
SELECT emaj.emaj_drop_group('mon_groupe');
permet de « démarrer » le groupe de tables, d’enregistrer les mises à jour en posant des marques intermédiaires, de revenir à l’une d’elles, d’arrêter l’enregistrement et enfin de supprimer le groupe.
Pour plus de précisions, les principales fonctions sont décrites ici.
En complément, le client Emaj_web peut être installé et utilisé.