- Notifications
You must be signed in to change notification settings - Fork5
PostgreSQL table versioning management software
License
linz/postgresql-tableversion
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PostgreSQL table versioning extension, recording row modifications and its history. The extensionprovides APIs for accessing snapshots of a table at certain revisions and the difference generatedbetween any two given revisions. The extension uses a PL/PgSQL trigger based system to record andprovide access to the row revisions.
Installpgxn-client which is hosted on PyPI:
$ sudo easy_install pgxnclient
Then do:
$ sudo pgxn install table_version
or sudo pgxn load -d my_db table_version
(Run pgxn --help for more info)
Add apt repository:
# Enable fetching packages from packagecloud# production repository:$ curl -s \ https://packagecloud.io/install/repositories/linz/prod/script.deb.sh | sudo bash
Then install the package (tweak the PGVER line if needed):
$ PGVER=$(basename `pg_config --sharedir`) \ sudo apt-get install postgresql-${PGVER}-tableversion
To build it, just do this:
makemake installcheckmake install
If you encounter an error such as:
"Makefile", line 8: Need an operator
You need to use GNU make, which may well be installed on your system asgmake
:
gmakegmake installgmake installcheck
If you encounter an error such as:
make: pg_config: Command not found
Be sure that you havepg_config
installed and in your path. If you used a package managementsystem such as RPM to install PostgreSQL, be sure that the-devel
package is also installed. Ifnecessary tell the build process where to find it:
env PG_CONFIG=/path/to/pg_config make && make installcheck && make install
And finally, if all that fails (and if you're on PostgreSQL 8.1 or lower, it likely will), copy theentire distribution directory to thecontrib/
subdirectory of the PostgreSQL source tree and tryit there withoutpg_config
:
env NO_PGXS=1 make && make installcheck && make install
If you encounter an error such as:
ERROR: must be owner of database regression
You need to run the test suite using a super user, such as the default "postgres" super user:
make installcheck PGUSER=postgres
Oncetable_version
is installed, you can add it to a database. If you're running PostgreSQL 9.1.0or greater, it's a simple as connecting to a database as a super user and running:
CREATE EXTENSION table_version;
The extension will install support configuration tables and functions into thetable_version
schema.
If you're ugrading from an older version of the extension run:
ALTER EXTENSION table_version UPDATE;
If you've upgraded your cluster to PostgreSQL 9.1 and already hadtable_version
installed, you canupgrade it to a properly packaged extension with:
CREATE EXTENSION table_version FROM unpackaged;
As a facility, thetable_version-loader
script can be used to both create (but not fromunpackaged) and upgrade the extension in an existing database. To use it run:
table_version-loader <dbname>
If it is not possible to installtable_version
as an extension in your database cluster system youcan still use it by loading the support scripts in your database. Thetable_version-loader
scriptcan be used to make this easy, just run:
table_version-loader --no-extension <dbname>
Connection information (postgresql hostname, port, username, password) can all be set using standardenvironment variables PGHOST, PGPORT, PGUSER, PGPASSWORD.
Thetable_version
extension has no dependencies other than PL/PgSQL.
Installation and upgrade tests use Docker containers. See.github/workflows/test.yml
for how totest various aspects.
This project is under 3-clause BSD License, except where otherwise specified. See the LICENSE filefor more details.
About
PostgreSQL table versioning management software
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors10
Uh oh!
There was an error while loading.Please reload this page.