Append-only and snapshots with PostgreSQL? I'm working on a small content management system database and I wanted to use an append-only architecture, having snapshots of content (revisions) that can be used at any time, kinda like Git. But unlike git, i don't think it's feasible to store deltas, but just an entire snapshot.

Does anyone know of a way to do this in PostgreSQL in a way that supports relationships? How can i store a snapshot of relations between tables?
The SQL:2011 standard has a feature known as temporal tables or system-versioned tables which might be helpful for this type of use-case. 

Basically, whenever you update or delete a record in the database, the database automatically holds on to the previous version of the record, including the time period when it was valid.

PostgreSQL doesn't support this feature natively, but there's an extension called temporal_tables. A tutorial can be found here. A few other DBMSes support temporal tables natively, including SQL Server 2016 and MariaDB 10.3.