Вступить в клуб →
сложнаявопросPostgreSQL, ORM и оптимизация запросов

Миграция с переименованием колонки уронила сервис на время раскатки

В релизе миграция:

ALTER TABLE users RENAME COLUMN phone TO phone_number;

и новый код, который читает phone_number. Миграция выполняется перед раскаткой, поды обновляются по одному в течение трёх минут. Все три минуты часть запросов падает с column "phone" does not exist. Как провести такое изменение без простоя?

  • В несколько релизов: добавить колонку, писать в обе, перейти, потом удалить старую
  • Выполнять миграцию после раскатки всех подов, а не перед ней
  • Раскатывать все поды одновременно, чтобы старый код не жил дольше миграции
  • Обернуть ALTER TABLE в транзакцию, чтобы переименование прошло атомарно

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела