Production Supabase migrations go wrong when a subsystem is skipped. This checklist covers the surfaces that matter and gives you a clear go/no-go signal before you flip the switch.
Source project checklist
- Recent backup taken and verified.
- Schema changes frozen for the migration window.
- List of active connections and long-running queries.
- Cron jobs paused or documented.
Destination project checklist
- Correct plan, region, and org.
- Required Postgres extensions enabled.
- Auth providers configured with correct redirect URIs.
- SMTP and email templates set if the app sends transactional email.
Database checklist
- Schema recreated with the same names, types, and defaults.
- RLS policies created for every user-facing table.
- Grants added on the public schema for anon and authenticated as needed.
- Sequences reset after data import.
Auth users checklist
- User IDs preserved so foreign keys still resolve.
- Password hashes migrated using a supported method.
- OAuth identities recreated where applicable.
- A real signup and sign-in tested end to end.
Storage checklist
- Buckets recreated with correct visibility and limits.
- Files copied preserving paths.
- Signed URL flows tested on the destination.
Secrets checklist
- Every environment variable the app reads is present on the destination.
- Every Edge Function has its own secrets set.
- Old service role keys rotated after cutover.
Edge Functions checklist
- Function code deployed on the destination.
- Dependencies resolve and cold starts complete.
- Callers updated to the new invocation URLs.
Validation checklist
- Row counts match per table.
- Sample rows compared across critical tables.
- A production-like smoke test run against the destination.
Rollback checklist
- Source project kept running in read-only mode after cutover.
- DNS/config change can be reverted in minutes.
- Migration log is complete enough to reverse or re-run.
Final go/no-go checklist
- Every section above is green.
- Owners are on call during the cutover window.
- Users have been notified if the migration involves brief downtime.
How Miglify helps
Miglify runs the checklist for you: analyzing the source, validating the destination, and tracking every job with a report at the end. Fewer surprises, clearer signal, faster recovery.
Miglify keeps every step observable — analyze source, validate destination, and prepare rollback-aware runs before you cut over.
