pg_restore --exit-on-error --no-owner --no-acl. Compare table counts,
migration version, case/warning/receipt identifiers and event/outbox JSON object
types. Read cases from the restored instance. A dump is not a verified backup
until the restore rehearsal succeeds. Never attach the live volume to it.
Self-host
Backup, upgrade and recovery
Verify a recoverable backup before changing the deployed version.
Before every upgrade, take a custom-format PostgreSQL dump and encrypt it with
a separately retained age recipient. Keep passwords, dumps and decryption keys
outside Git. From the image bundle directory:
Decrypt and restore into an isolated empty PostgreSQL 18 instance using