“I'll just cron pg_dump”
THE MOST REASONABLE OBJECTION WE GET — TAKEN SERIOUSLY
Every Postgres developer has thought it, and it's not wrong: pg_dump | gzip | aws s3 cp, a cron entry, done. That's a real backup strategy — it's free, you own every byte, and it works on any provider. If you're going to do it, do it well: our pg_dump generator writes the correct flags for your provider. This page is about what the cron job doesn't do, so you can decide with your eyes open.
The five ways the cron job fails on the day it matters
- It stops silently. A rotated password, an expired key, a full disk, a decommissioned box. Cron doesn't email you when the dump starts failing — you find out during the incident, looking at a bucket whose newest object is from March.
- Nobody ever restores one. An untested backup is a hypothesis. The classic discovery is a dump taken with a newer pg_dump than the restore target, a missing role, or a truncated file — each invisible until the one moment you can't afford it.
- Encryption and keys are on you. Plaintext dumps with production data in an S3 bucket are a compliance finding waiting to be written. Doing it right means key management, forever.
- Retention is a second job. Lifecycle rules, pruning, “why is the bucket $80/month” — or the opposite: the script that overwrites the single dump file nightly, so the corrupted backup replaced the good one.
- It's never there before the migration. The disaster that actually happens is a bad deploy at 4:55 PM. A nightly cron gives you yesterday; recovery needs 4:54:30 today, tagged with the commit that caused it.
Side by side
Cron + pg_dump
- Free; full control; provider-agnostic.
- Monitoring, encryption, retention, restore testing: yours to build and maintain.
- Knowledge lives in one person's head — fragile to them leaving.
- Genuinely fine for side projects and replaceable data.
OffsiteDB
- Same standard pg_dump archives, in your bucket — no lock-in.
- Every snapshot restore-drilled on real Postgres, row-counted, then sealed.
- Failure and shrinkage alerts; dead-man monitoring; retention enforced.
- Tagged pre-migration checkpoints from CI; monthly restore-drill reports.
- From $9/mo — about one engineer-minute, priced monthly.
The honest decision rule
If the data is replaceable or the project is a hobby, write the cron job — seriously, the generator and the restore-drill checklist will make it a good one. If people pay for the product, the calculus flips: the cron job's true cost is the maintenance and the unproven restore, and both bills arrive at the worst possible moment. (We wrote up that exact Friday.)