Skip to content
E-Maj is a PostgreSQL extension that tracks updates on tables sets with rollback capabilities
PLpgSQL Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



E-Maj: logs and rollbacks table updates


1- License

This software is distributed under the GNU General Public License.

2- Objectives

The main goals of E-Maj are:
	- log updates performed on one or several sets of tables.
	- cancel these updates if needed, and reset a tables set to a predefined stable state.

In development environments, it brings a good help in testing application, providing an easy way to rollback all updates generated by programs execution, and replay these processings as many times as needed.

In production environments, it brings a good solution to:
	- keep an history of updates performed on tables to examine them in case of problem
	- set inter-batch savepoints on group of tables,
	- easily "restore" this group of tables at a stable state, without being obliged to stop the cluster,
	- handle several savepoints during batch windows, each of them been usable at any time as "restore point".

It brings a good alternative to the management of several database disk images.

In both environments, being able to examine the history of updates performed on tables can be very helpful in debugging work or for any other purposes.

3- Supplied files 

- README                            this readme file
- CHANGES                           release notes
- LICENSE                           license information 
- AUTHORS                           who is behind E-Maj
- META.json                         meta file for PGXN

- sql/emaj.sql                      psql installation script 
- sql/check-0.10.1-to-0.11.0-conditions.sql   psql script to check that all conditions allowing a 
                                    direct migration from 0.10.1 to 0.11.0 are met
- sql/emaj-0.10.0-to-0.10.1.sql     psql migration script from 0.10.0 to 0.10.1
- sql/emaj-0.10.1-to-0.11.0.sql     psql migration script from 0.10.1 to 0.11.0
- sql/emaj-0.11.0-to-0.11.1.sql     psql migration script from 0.11.0 to 0.11.1
- sql/emaj-0.11.1-to-1.0.0.sql      psql migration script from 0.11.1 to 1.0.0
- sql/emaj-1.0.0-to-1.0.1.sql       psql migration script from 1.0.0 to 1.0.1
- sql/emaj-1.0.1-to-1.0.2.sql       psql migration script from 1.0.1 to 1.0.2
- sql/emaj-1.0.2-to-1.1.0.sql       psql migration script from 1.0.2 to 1.1.0
- sql/emaj-1.1.0-to-1.2.0.sql       psql migration script from 1.1.0 to 1.2.0
- sql/emaj-1.2.0-to-1.3.0.sql       psql migration script from 1.2.0 to 1.3.0
- sql/emaj--0.10.0--unpackaged.sql  script used to unregister a 0.10.0 E-Maj extension
- sql/emaj--0.10.1--unpackaged.sql  script used to unregister a 0.10.1 E-Maj extension
- sql/uninstall.sql                 uninstallation script
- sql/demo.sql                      demonstration psql script
- sql/prep-pr.sql                   psql script to prepare parallel rollback demonstration

- doc/emaj.<NEXT_VERSION>_doc_en.pdf        E-Maj user's guide in English
- doc/emaj.<NEXT_VERSION>_doc_fr.pdf        E-Maj user's guide in French
- doc/emaj.<NEXT_VERSION>_pres_en.pdf		E-Maj presentation in English
- doc/emaj.<NEXT_VERSION>_pres_fr.pdf		E-Maj presentation in French

- php/emajParallelRollback.php      external client for parallel rollback
- php/emajRollbackMonitor.php       external client to monitor in progress rollback operations

4- How to install and use E-Maj

All the information details needed to install and use E-Maj are provided in the user's guide that is included in the supplied .tar file.

To reach this user's guide, just untar the supplied file by :
tar -xvzf emaj-<version>.tar.gz

The installation does not use the CREATE EXTENSION syntax yet. A future E-Maj version will use it when PostgreSQL versions prior 9.1 will not be supported anymore.

5- E-Maj plugin for phpPgAdmin

As presented into the E-Maj user's guide, a plugin for phpPgAdmin provides a user friendly E-Maj administration tool.
This plugin takes benefit from the plugin architecture brought by phpPgAdmin 5.1+.
The plugin is available on github (

6- Support

For additional support or bug report, please contact Philippe BEAUDOIN (phb <dot> emaj <at> free <dot> fr).

Any feedback is welcome, even to just notice you use E-Maj ;-)

E-Maj is also available on github (
The source files of the documentation are also available on github (

Something went wrong with that request. Please try again.