Every database change, reviewed before it ships.
Sieve reviews every migration PR before it merges — not just the schema diff, but how the change behaves against your real data. Blast radius, risk score, rollout plan, posted as a GitHub check. Install in 60 seconds.
How it works
Three steps. Under a minute from push to verdict.
- 1
Install on a repo
Add the GitHub App to any repo that ships database migrations. One click, no CI changes, no YAML.
- 2
Open a schema PR
Sieve detects any PR that touches your schema or migrations — Prisma, Drizzle, Django, Rails, raw SQL, and more. No manual trigger.
- 3
Get the review on the PR
Check run + PR comment: verdict, risk score, blast radius, rollout SQL, rollback. Full report linked.
The only honest way to know what a migration does to your data is to check it against data.
Schema-only review tells you a change looks risky. Sieve tells you whether it will actually fail on your data — and proves it. Opt-in, least-privilege, off by default.
Reads the data shape, never the data
Sieve checks the change against the planner's own statistics — row counts, null fractions, distinctness, index coverage. It knows a NOT NULL will fail when 12% of the column is already null, and that a blocking lock is brief at 800 rows but minutes at 40M. No row of real data is ever read.
Applies the migration, then rolls it back
On request, Sieve runs the candidate migration against a throwaway copy inside a transaction, measures the real outcome — duration, table rewrites, actual constraint failures — and rolls back. The dangerous migration fails on a disposable branch instead of in production.
A review that does something about it.
Flagging the risk is the floor. Sieve also writes the safe version, remembers what each table has done before, and enforces the rules you set.
Writes the fix, not just the warning
When a change is unsafe, Sieve can open a follow-up PR with the corrected, phased migration — expand, backfill, contract — ready to review.
Remembers each table
Every review feeds a track record. Sieve flags when a table has caused incidents or absorbed risky changes before — context a one-off read can't have.
Enforces your policy
A .sieve.yml sets the risk level that fails Sieve's check. Make it a required check in branch protection and a risky migration can't merge — advisory until you decide otherwise.
Works with how you already ship
One engine across every ORM and database — no rewiring, no new workflow.
Run it on your next migration PR. Free forever on public repos.
Private repos start at $29/schema PR author/month. Try the playground first, no install required.