# Supabase migrations ship safely when every change is reversible and tested first

Shipping a mobile app backend feels calm until the day a schema change locks your users out. On the web you can deploy, migrate, and roll forward in one pipeline. On mobile you cannot. Old app versions live on user phones for weeks, backgrounded sessions hold stale connections, and a column rename that looked harmless in staging can turn thousands of installed clients into crash reports. Supabase migrations give you a disciplined path through this, but only if you treat every migration as a production event with a rollback plan.

The stakes are plain. Your Postgres database is the one component every app version shares. Version 1.4 expects a `username` column, version 1.5 expects `display_name`, and both hit the same tables at the same time during a staged rollout.

---

*This is an excerpt. Read the full post at [otf-kit.dev/blog/supabase-migrations-zero-downtime-mobile](https://otf-kit.dev/blog/supabase-migrations-zero-downtime-mobile) — full-stack kits your AI coding agent can actually ship to production. [Browse the kits →](https://otf-kit.dev)*
