Чому міграції ламають релізи
Найчастіший сценарій: код уже очікує нове поле, але схема ще не оновлена (або навпаки). Zero‑downtime підхід робить зміни сумісними на кожному кроці.
1) Правило: схема → код → прибирання
- Додаємо нові колонки/таблиці без видалення старих.
- Код читає “старе або нове” (dual read), пише в обидва (dual write) за потреби.
- Після стабілізації прибираємо старе.
2) Backfill
Заповнюй нові колонки фонового джобою, з лімітами і метриками, а не одним “важким” SQL на проді.
3) Великі таблиці
- Поступові зміни, батчі, “lock‑free” підходи де можливо.
- Контроль індексів і часу блокувань.
4) Перевірки в CI/CD
Окремий крок міграцій з dry‑run, smoke tests і readiness checks перед переводом трафіку.
Підсумок
Forward‑compatible міграції + backfill роблять релізи передбачуваними. Це одна з ключових практик стабільного CI/CD.