Postgresql/Postgis : Trigger pour historisation/versionnement

From: celati Laurent <laurent(dot)celati(at)gmail(dot)com>
To: pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Postgresql/Postgis : Trigger pour historisation/versionnement
Date: 2022-09-18 18:18:23
Message-ID: CAHByMH0Wf42VP4crPD-9CwB_xGEznKgre_MM1zDdOqiisRpynw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour,
Je travaille avec Postgresql 13, Postgis et Qgis 3.22.
Mon besoin est de mettre en place au sein de ma base de données utilisée
pour de la production de cartes geographiques, des triggers pour
l'historisation, le versionnement de données.
L'idée : Au sein d'une table "OUVRAGE' (géométrie : points), différentes
mises à jour de la table sont effectuées au fil du temps.

Le changement de version se produit dans le cas où :
• de nouveaux objets sont ajoutés ou supprimés dans la table (INSERT /
DELETE)
• des objets sont mis à jour par de nouvelles versions d’objets
annulant et remplaçant les objets existants (UPDATE).
Parfois, ces UPDATE concernent uniquement le champ geometrie (changement
de la localisation). Parfois d'autres champs/attributs (type d'ouvrage,
referent technique, nom de la campagne de l'ouvrage, date de debut de
construction, nom de la commune de localisation de l'ouvrage,etc.).

=> Ces INSERT/DELETE/UPDATE devront avoir pour effet, au sein du schéma
"archive" (schéma dédié au stockage des tables/objets
historisés/versionnés), la création d'une nouvelle table "OUVRAGE_V1",
"OUVRAGE_V2", "OUVRAGE_V3",etc.

*Exigences*
• L’objectif n'est PAS d'effectuer une montée en version à chaque
modification (UPDATE) dans la table, mais d’identifier des phases
structurantes.
Autrement dit, l'idée est que l'administrateur puisse décider, déclencher
quand il juge pertinent, le processus de
trigger/d'historisation-versionnement.

• Le *versionnement à la table* est préconisé" : les tables de
versionnement (schema ARCHIVE) seront constituées d’éléments modifiés ET
également des objets non modifiés de la table "OUVRAGE".
Ce choix a été retenue notamment pour faciliter la restauration des objets
versionnés au niveau des projets qgis (client SIG) archivés.
*Avantage *: possibilité de se référer à une phase précise du projet
Instant T.
*Inconvénient *: duplication des objets même non modifiées au sein de la
table archive.

L’administrateur pourrait activer une action d’historisation lorsque cela
lui semble pertinent. Par exemple à la fin d’une session de mise à jour. Le
mécanisme d’historisation est automatique.

Une personne saurait elle me guider, m'orienter sur les méthodes offertes
par PostgreSQL/Postgis susceptibles de satisfaire mon besoin ?
Un grand merci. ;-) En espérant avoir été suffisamment clair.

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message David TECHER 2022-09-19 07:11:12 Re: Postgresql/Postgis : Trigger pour historisation/versionnement
Previous Message Alain Benard 2022-09-09 06:56:19 RE: Bug exécution successive même procedure plpgsql