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.
- System requirements
- Special thanks
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
Documentation can be found in the wiki section of this repository.
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.
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
- Adam Brusselback --> benchmarking and bugfixing
- Franco Ricci --> bugfixing
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.