Migrating a whole project in a single run sounds efficient. In practice, it multiplies risk: a failure anywhere means uncertainty everywhere. Selective migration modules let teams move one surface at a time and verify it before moving the next.
Why moving everything at once can be risky
A single-shot migration bundles independent failure modes together. Auth issues can mask storage issues, and a schema mismatch can look like a data problem. Splitting the work makes each failure specific and recoverable.
What selective migration means
Selective migration lets you choose which modules run: database, auth users, or storage. Each module has its own validation, its own progress, and its own rollback surface.
Database module
Schema, rows, sequences, and grants. The foundation everything else depends on.
Auth users module
Users, identities, and hashed passwords, preserving IDs so foreign keys keep working.
Storage module
Buckets and files with their visibility and path structure preserved.
When to migrate one module first
A database-only first run is a common pattern: it lets you validate schema and RLS against real destination behavior before touching auth or storage. Auth-first is useful when moving between orgs that share storage backends.
How selective migration supports testing
With a single module in play, smoke tests are targeted. You can verify signup and sign-in without worrying about storage state, or verify file access without worrying about incomplete auth data.
How selective migration affects rollback
Rollback stays scoped to what was actually moved. See our Rollback Planning guide for a broader view — selective runs make partial rollback both possible and predictable.
How Miglify supports selective modules
Miglify exposes database, auth, and storage as independent modules on the Confirm Migration step. Each module reports its own progress on the Live Migration Progress view, and skipped modules are shown clearly in the final report.
Final thoughts
Selective migration is not slower — it is more predictable. Move one surface, validate it, then move the next. Read the Rollback Planning and Live Migration Progress guides next.
Miglify keeps every step observable — analyze source, validate destination, and prepare rollback-aware runs before you cut over.
