I'm not looking for point-in-time backups but some kind of "time machine" read-only functionality.

For example when running a SELECT query I would like to tell the database to run it on the data as it was, say, 1 month ago. Snapshots granularity could go from on-demand to taking a snapshot after each transaction.

Ideally it would be possible also to purge data on-demand, something like "stop storing snapshots older than 10 days".

  • Not open source, but free: DB2 Express-C supports temporal queries – a_horse_with_no_name Sep 11 '17 at 13:12
  • Oracle has flashback (ooooh... bright, shiny buzzword - must be good :-) ) – Vérace Sep 11 '17 at 14:43

Arkhipov's extension for PostgreSQL enables Temporal Tables.


Here's a decent guide for using it: http://clarkdave.net/2015/02/historical-records-with-postgresql-and-temporal-tables-and-sql-2011/

PostgreSQL is uniquely suited to this task due to the way it implements row updates.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.