All guides
Migration Planning 6 min read July 2026

Selective Migration Modules: Why You Should Not Always Migrate Everything at Once

Learn how selective migration modules help teams migrate database, auth users, and storage in controlled stages instead of moving everything at once.

Quick summary

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.

Migration note

Miglify keeps every step observable — analyze source, validate destination, and prepare rollback-aware runs before you cut over.

Plan your migration with more control.

Use Miglify to analyze your source project, validate destination readiness, track migration progress, and prepare rollback-aware migration runs.

View Docs