intermediate
Migrations
Версионируйте schema changes, чтобы deploys, rollbacks, data backfills и zero-downtime constraints были explicit.
Миграции версионируют изменения схемы БД (и иногда данных). ORM генерирует SQL из diff моделей, но в production нужны ручной review, expand-contract deploy и план отката.
| Фаза | Цель | |------|------| | Expand | Добавить nullable-столбец или таблицу, безопасную для старого кода | | Migrate data | Backfill батчами с мониторингом | | Contract | Удалить старый столбец после обновления всех writer/reader |
На интервью: блокировки, backfill, drift detection, shadow databases и почему сгенерированная миграция — черновик, а не одобрение.
Типовые ошибки: rename превращается в drop-and-create; тяжёлый DDL на большой таблице блокирует production; down-миграции как гарантированное восстановление данных.
Компромисс — скорость автоматизации против операционной безопасности при выкатке.
Чеклист:
- Проверяйте SQL до deploy.
- Планируйте zero-downtime совместимость.
- Разделяйте фазы schema, code и data.
- Тестируйте миграции на реалистичном объёме данных.