banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Sun 18 September 2022 19:55

image95
Participant assidu
Date d'inscription: 6 Sep 2014
Messages: 257

Postgresql/Postgis : Trigger pour historisation/versionnement

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 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 (voire Qgis) susceptibles de satisfaire mon besoin ?
Un grand merci. ;-) En espérant avoir été suffisamment clair.

Hors ligne

 

Pied de page des forums

Powered by FluxBB