All guides
Supabase 6 min read July 2026

Supabase Migration Limits: How to Plan Rows, Users, and Storage Before Moving

Plan Supabase migrations around database rows, auth users, storage files, total storage size, single file size, and private beta review limits.

Quick summary

Every migration has an implicit size envelope. Knowing your project's shape ahead of time — rows, users, files, total bytes — is the difference between a smooth run and a surprise mid-cutover.

Why migration size matters

Size affects duration, memory pressure, network throughput, and how much time you need for verification. It also determines whether a project fits inside private beta limits or needs a manual review.

Database row counts

Row counts drive schema migration duration and validation time. Long tables benefit from batched copies and post-migration sequence resets.

Auth user counts

Auth migrations are relatively fast per user but sensitive to ID preservation. Larger user bases increase the risk of collisions if IDs are regenerated by accident.

Storage file counts

File counts affect the number of individual API calls a migration needs to make. Many small files can be more expensive than a few large ones.

Total storage size

Total bytes influence throughput and cost. Estimate before the run so the destination plan supports the incoming volume.

Single storage file size

Very large single files can trip per-request limits. Split, chunk, or handle them out-of-band when they exceed the platform maximum.

How limits help during private beta

Current Miglify private beta limits keep runs predictable:

  • Database rows: 100,000
  • Auth users: 10,000
  • Storage files: 10,000
  • Total storage size: 5 GB
  • Single storage file size: 100 MB

When larger projects need manual review

Projects that exceed these limits are not unsupported — they need a short manual review so the team can plan a safe run together. Request review through the /beta page.

How to prepare a smaller first test

  • Start with a staging project that mirrors production schema.
  • Migrate a representative subset of rows, users, and files.
  • Run verification end to end before scaling up.

How Miglify handles private beta limits

Miglify surfaces limit status in the Detected Resources card during setup. When a project exceeds the current beta envelope, the Confirm step switches to "Approval required" so nothing runs without a plan.

Read the Supabase to Supabase Migration guide next, and visit the /beta page to request access or a manual review.

Final thoughts

Measure before you migrate. A ten-minute inventory turns unknown risk into a known plan — and lets the team choose the right size for a first test run.

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