mailwal

BackupDrill: open-source Supabase Postgres backups with automated restore drills

BackupDrill via PostgreSQL Announce

BackupDrill: open-source Supabase Postgres backups with automated restore drills

BackupDrill backs up Supabase Postgres databases to a bucket you own, then restores each backup into a throwaway PostgreSQL instance to check it restores.

Most teams find out whether their pg_dump backups work on the day they need them. BackupDrill makes that check a routine step.

What it does:

  • Runs pg_dump (custom format) against a Supabase project and streams the archive to any S3-compatible bucket (AWS S3, Cloudflare R2, Backblaze B2, Wasabi), with a checksummed manifest. Storage files can be copied into the same snapshot.
  • backupdrill drill restores the latest snapshot into a throwaway PostgreSQL container with pg_restore. It checks the archive checksum, that pg_restore completed, that post-data objects such as indexes, constraints and triggers were created, that every table is present and that tables which held data are not empty, and it records how long the restore took.
  • Backups are plain pg_dump archives, so stock pg_restore can restore them without BackupDrill.
  • It refuses to run a pg_dump whose major version is older than the server's. Supabase currently runs PostgreSQL 15 to 17.

Scope: Supabase-hosted PostgreSQL only for now; the public schema is dumped by default and other schemas can be added.

The CLI is MIT-licensed: https://github.com/backupdrill/cli (npm package: backupdrill). The hosted service at https://backupdrill.com runs the same engine on a schedule, with restore drills and email alerts when a backup or drill fails. It has a free plan.

This email was sent to you from BackupDrill. It was delivered on their behalf by the PostgreSQL project. Any questions about the content of the message should be sent to BackupDrill.

You were sent this email as a subscriber of the pgsql-announce mailinglist, for for one of the content tags Related Proprietary or Related Open Source. To unsubscribe from further emails, or change which emails you want to receive, please click the personal unsubscribe link that you can find in the headers of this email, or visit .