Skip to content
Audit trail with schema versioning for PostgreSQL using transaction-based logging
PLpgSQL TSQL Shell Makefile
Branch: master
Clone or download
FxKu Merge pull request #40 from pgMemento/fix-log-util
fix LOG_UTIL variables and delete_audit_table_log
Latest commit 82a0097 Oct 27, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ctl add UPGRADE script from v0.6.1 to v0.7 Jun 9, 2019
docs @ 399921c updated docs Jul 6, 2019
extension make it compatible to PG12 Oct 27, 2019
material updated db schema image Sep 26, 2018
src make it compatible to PG12 Oct 27, 2019
test fix LOG_UTIL variables and delete_audit_table_log Oct 25, 2019
.gitmodules adding wiki as submodule Nov 20, 2018
.travis.yml set installation candidate for postgis package and add PG12 Oct 26, 2019
INIT.sql more fixes for quoting also in setup scripts Feb 17, 2019
INSTALL_PGMEMENTO.sql reflect name change of VERSIONING in other scripts Oct 28, 2018
LICENSE initial commit (derived from FxKu/Audit) Nov 26, 2014
README.md Update README.md Nov 8, 2018
START_AUDITING.sql new control files to initialize pgMemento and to start and stop auditing Mar 9, 2016
STOP_AUDITING.sql
TEST.sql more fixes and re-enable tests Apr 17, 2019
UNINSTALL_PGMEMENTO.sql there is still a place for replace Feb 17, 2019
UPGRADE_v061_to_v07.sql add UPGRADE script from v0.6.1 to v0.7 Jun 9, 2019

README.md

pgMemento

Build Status

alt text

pgMemento provides an audit trail for your data inside a PostgreSQL database using triggers and server-side functions written in PL/pgSQL. It also tracks DDL changes to enable schema versioning and offers powerful algorithms to restore or repair past revisions.

Index

  1. License
  2. System requirements
  3. Documentation
  4. Media
  5. Developers
  6. Special thanks
  7. Disclaimer

1. License

The scripts for pgMemento are open source under GNU Lesser General Public License Version 3.0. See the file LICENSE for more details.

2. System requirements

  • PostgreSQL 9.5
  • PL/pgSQL language

3. Documentation

Documentation can be found in the wiki section of this repository.

4. Media

I presented pgMemento at FOSSGIS 2015 (in german) and at FOSSGIS-NA 2016 . At FOSS4G 2017 I gave a more general overview on database versioning techniques.

Slides of the most up-to-date presentation (which are hopefully even easier to follow) can be found here. I gave the talk at the german PostgreSQL conference 2018, but the slides are in english.

A demo paper about pgMemento has been accepted at the 15th International Symposium for Spatial and Temporal Databases (SSTD) 2017 in Arlington, VA. You can find the publication here.

5. Developers

Felix Kunde (felix-kunde [at] gmx.de)

I would be very happy if there are other PostgreSQL developers out there who are interested in pgMemento and willing to help me to improve it. Together we might create a powerful, easy-to-use versioning approach for PostgreSQL.

6. Special Thanks

  • Petra Sauer --> For support and discussions on a pgMemento research paper
  • Hans-Jürgen Schönig --> recommend to use a generic JSON auditing
  • Christophe Pettus --> recommend to only log changes
  • Claus Nagel --> conceptual advices about logging
  • Ugur Yilmaz --> feedback and suggestions
  • Maximilian Allies --> For setting up Travis yml script
  • Steve --> coming up with the idea of a session_info field
  • Adam Brusselback --> benchmarking and bugfixing
  • Franco Ricci --> bugfixing

7. Disclaimer

pgMemento IS PROVIDED "AS IS" AND "WITH ALL FAULTS." I MAKE NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE QUALITY, SAFETY OR SUITABILITY OF THE SKRIPTS, EITHER EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.

IN NO EVENT WILL I BE LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES HOWEVER THEY MAY ARISE AND EVEN IF I HAVE BEEN PREVIOUSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. STILL, I WOULD FEEL SORRY.

You can’t perform that action at this time.