Expand and Contract vs. Single-step Migrations for Railway Rollback Safety
When deploying schema changes on Railway, developers must choose between single-step migrations and the 'Expand and Contract' pattern. Since Railway does not natively guarantee transactional DDL across all database engines, a failed migration can leave the schema in an inconsistent, partially migrated state. Single-step migrations rely on manual 'down' metho