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.
Installer le logiciel
Si le client pgxn est installé, une simple commande suffit :
pgxn install E-Maj --sudo
Sinon enchaîner :
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.
Créer 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 exécutez :
CREATE EXTENSION emaj CASCADE;
Donner les droits d’administration E-Maj à un rôle spécifique :
GRANT emaj_adm TO <role>;
Utiliser l’extension
Connectez vous à la base de données avec le rôle qui possède maintenant les droits d’administration E-Maj.
Créer un groupe de tables (ici de type ROLLBACKABLE) :
SELECT emaj.emaj_create_group('mon_groupe', true);
Assigner des tables et séquences au groupe de tables
Pour ajouter une table :
SELECT emaj.emaj_assign_table('mon_schéma', 'ma_table', 'mon_groupe');
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');
Note
Seules les tables ayant une clé primaire sont affectées à un groupe de tables ROLLBACKABLE.
Enchaînement typique de commandes pour enregistrer les mises à jour et les annuler
« Démarrer » le groupe de tables et enregistrer les mises à jour :
SELECT emaj.emaj_start_group('mon_groupe', 'Mark-1'); [*INSERT*/*UPDATE*/*DELETE* sur les tables du groupe]
Poser des marques intermédiaires :
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]
Retourner à une marque antérieure :
SELECT emaj.emaj_rollback_group('mon_groupe','Mark-2');
Arrêter l’enregistrement puis supprimer le groupe de tables :
SELECT emaj.emaj_stop_group('mon_groupe'); SELECT emaj.emaj_drop_group('mon_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é.