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](https://github.com/backupdrill/cli) (npm 
package: backupdrill). The hosted service at 
[https://backupdrill.com](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.

Reply via email to