forked from heavy-duty/rig
The db PR only unit-tested arg parsing; this adds executable proof that dump/restore actually works end to end. - test/db-integration.sh: stands up two throwaway Postgres containers whose superusers DIFFER by construction (src_super vs dst_super), seeds a known checksummable fixture, runs the real `rig db dump`/`rig db restore`, and reads the rows back out — proving both invariants db.sh cares about: the code reads the container's OWN $POSTGRES_USER/$POSTGRES_DB (a hardcoded `postgres` would break on the non-default source superuser), and --no-owner --no-acl makes the dump portable across differing superusers (a plain dump would abort under ON_ERROR_STOP=1 on the missing role). Also asserts default-outfile naming, restore idempotency (--clean --if-exists), and the named-[db] scratch-database path. Skips cleanly (exit 0) when Docker is absent/unreachable or root is unobtainable; always cleans up via trap. - ci.yml: separate `db-integration` job on ubuntu-latest (Docker preinstalled), kept apart from the fast shellcheck+cli.sh `check` job so an image pull can't slow lint feedback. - README: "Verifying a dump/restore actually works" — the safe manual round-trip against a real Coolify container via a fresh scratch db, echoing "a backup you have never read back is not yet a backup." Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ci.yml | ||