keeping track of edited features QGIS

Having your data stored in a Postgres\postgis database, you can use QGIS DBManager to create a versioning system on your tables.

Open DBManager and open you postgis database connection.

Then go to Table > Versioning.

enter image description here

This dialog will show:

enter image description here

Select the schema and table (That must be empty!) and press Ok

This tool will create new fields, a view (yourtable_current) and a few rules and triggers, to edit it. It will allow you to see what changes have been made to each feature in time and actually go back if needed.

Notice that you can run the listed code in "SQL to be executed:" directly on Postgres, and even tweak it a bit if you need. I for instance want to include a field "user" to track who made the changes.


You can keep track of edited features on shapefiles as well so you do not need PostGIS or Geoserver.

Steps: 1) Add a Edited Date Field (ESRI uses EDITED_DT). Make it a Date format. 2) Add a Created Date Field (ESRI uses CREATE_DT). make it a Date format. 3) In Layer Properties Select Attribute Form then the Edited Date field. 4) Towards the bottom change the defaults for the field to now() and apply the default value on update. 5) Once again in the Attribute Form, Open up the Created Date field. 6) Towards the bottom change the defaults for the field to now(). Unlike the edited date do not apply the default value on updates.

Note I realize this is an old post. So these instructions may have been explained elsewhere!

QGIS Editor Tracking


Assuming you are using PostGIS, you may want to look into implementing your own edit tracking system in postgres.

A great tutorial can be found at this blog. The general idea is that after each edit/delete a table is updated to store details of any changes made along with user and time (all done using triggers). This system will also allow you to roll back to the previous geometry if required and adds accountability to your GIS.