unknown
2011-07-02 14:17:38 UTC
a seguito del post* "storicizzazione** dell*e modifiche in postgres/postgis"
ho fatto alcune prove con il plugin di Qgis "Postgis Manager"
per vedere se riuscivo a storicizzare le modifiche in una tabella del db
devo dire che il plugin soddisfa pienamente l'esigenza!!
inoltre fa anche moltre altre cose... per esempio Ú possibile aggiungere un
trigger per il calcolo automatico dell'area dell'oggetto ad ogni modifica
geometrica!
tornando alla funzione di storicizzazione...
si attiva dal menu DATA -> TABLE VERSIONING
selezioni schema e tabella
e poi
nella tabella vengono create 3 colonne:
- id_hist (che sostituirà la gid)
- time_start
- time_end
viene inoltre creata una vista con la versione corrente della tabella
ho avuto qualche problemino all'inizio durante le prove di modifica del
layer:
la prima modifica fatta su ogni riga del DB
non valorizzava il campo time_end della riga da invalidare (old)
e così ci si trovava con due record validi uguali...
ci ho messo un po' a capire che dipendeva dal fatto che la colonna
time_start era vuota!
così ho risolto in questo modo:
- ho disabilitato il trigger dell'update
- ho valorizzato la colonna time_start
- ho riattivato il trigger
con questo plugin, senza avere conoscenze di programmazione di postgres
si può organizzare un buon sistema di storicizzazione di dati geografici
una possibile miglioria del plugin:
per tenere traccia di chi fa le modifiche
sarebbe da aggiungere 2 colonne: utente_start e utente_end
ciao!
emanuele masiero
padova
-------------- parte successiva --------------
Un allegato HTML ᅵ stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20110702/42235fba/attachment.html>
ho fatto alcune prove con il plugin di Qgis "Postgis Manager"
per vedere se riuscivo a storicizzare le modifiche in una tabella del db
devo dire che il plugin soddisfa pienamente l'esigenza!!
inoltre fa anche moltre altre cose... per esempio Ú possibile aggiungere un
trigger per il calcolo automatico dell'area dell'oggetto ad ogni modifica
geometrica!
tornando alla funzione di storicizzazione...
si attiva dal menu DATA -> TABLE VERSIONING
selezioni schema e tabella
e poi
nella tabella vengono create 3 colonne:
- id_hist (che sostituirà la gid)
- time_start
- time_end
viene inoltre creata una vista con la versione corrente della tabella
ho avuto qualche problemino all'inizio durante le prove di modifica del
layer:
la prima modifica fatta su ogni riga del DB
non valorizzava il campo time_end della riga da invalidare (old)
e così ci si trovava con due record validi uguali...
ci ho messo un po' a capire che dipendeva dal fatto che la colonna
time_start era vuota!
così ho risolto in questo modo:
- ho disabilitato il trigger dell'update
- ho valorizzato la colonna time_start
- ho riattivato il trigger
con questo plugin, senza avere conoscenze di programmazione di postgres
si può organizzare un buon sistema di storicizzazione di dati geografici
una possibile miglioria del plugin:
per tenere traccia di chi fa le modifiche
sarebbe da aggiungere 2 colonne: utente_start e utente_end
ciao!
emanuele masiero
padova
-------------- parte successiva --------------
Un allegato HTML ᅵ stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20110702/42235fba/attachment.html>