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.
  • Тестируйте миграции на реалистичном объёме данных.