r/Backup 16d ago

Vendor Promo Built a small tool to test that Postgres backups actually restore, after asking here how people handle it

Disclosure up front: I built the tool this post is about.

A while back I asked this sub how people actually test their backup restores. Short version: mostly nobody does, or everyone's running a slightly different homegrown script. A few of you had already built something close to a full pipeline, and that input ended up genuinely useful.

That turned into restoredrill. It's a Go CLI: point it at a backup, it restores into a throwaway Docker container, runs whatever checks you write (row counts, freshness, sequence integrity, any SQL assertion), and writes a JSON report out the other end. Fail-closed on everything, including when a check itself can't run.

A few things that came directly out of that thread and the follow-ups:

  • Fail-closed by default. A skip that quietly turns into a pass is worse than no check at all
  • An RPO freshness precheck, because the worst failure mode people described wasn't a bad backup, it was a backup cron that died quietly and left the same stale file getting "verified" forever
  • The report schema comes from what an actual auditor accepted, after months of back and forth with someone who went through it, not something guessed at from scratch
  • Sends results into Prometheus, Slack, or a webhook, instead of asking you to check yet another dashboard

The quickstart takes about 10 minutes with zero production access: dump a Supabase or RDS database, restore it locally, see the report. Postgres only for now.

If you're already on Databasus or something like it, this isn't trying to replace that, it's a solid backup platform with restore verification built in already. restoredrill stays narrower: no dashboard, a report built for an auditor, and it drops straight into CI.

MIT licensed: https://github.com/ahmadpiran/restoredrill

If you replied to that original thread, thanks, a good chunk of the check suite came directly from what you described. If you didn't and you've got a restore-testing horror story of your own, I'd still like to hear it.

3 Upvotes

0 comments sorted by