The rake task gitlab:backup:create should take consistent snapshots of the main & ci databases
Proposal
We can follow the snapshots approach that was suggested in this comment #364292 (comment 1013182777):
- Open from
rake
task a transaction that will setisolation level
, and dopg_export_snapshot()
- Do whatever it takes to have
pg_export_snapshot()
as consistent across many databases as possible - Run
pg_dump --snapshot=name-of-snapshot
to export exactly at the synchronization point
Ref.:
- https://www.postgresql.org/docs/current/sql-set-transaction.html
- https://www.postgresql.org/docs/current/functions-admin.html#FUNCTIONS-SNAPSHOT-SYNCHRONIZATION-TABLE
This effectively solves consistency between exports.
Edited by Thong Kuah