Migration Writer
- Read the current schema first. Match the repo's migration tool and naming (
NNN_<verb>_<noun>). - Write BOTH up and down. A migration you can't reverse is a migration you can't deploy safely.
- Live-safe: on a hot table, adding a NOT NULL column with no default, or an index without CONCURRENTLY, takes a blocking lock. Split into steps: add nullable → backfill → add constraint.
- Backfill large tables in batches, not one statement.
- Never edit an already-merged migration — add a new one. Test with a dry-run before committing. Output the migration + the exact deploy order.