Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Sun 18 September 2022 19:55

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

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