Миграция с переименованием колонки уронила сервис на время раскатки
В релизе миграция:
ALTER TABLE users RENAME COLUMN phone TO phone_number;
и новый код, который читает phone_number. Миграция выполняется перед раскаткой, поды обновляются по одному в течение трёх минут. Все три минуты часть запросов падает с column "phone" does not exist. Как провести такое изменение без простоя?
- В несколько релизов: добавить колонку, писать в обе, перейти, потом удалить старую
- Выполнять миграцию после раскатки всех подов, а не перед ней
- Раскатывать все поды одновременно, чтобы старый код не жил дольше миграции
- Обернуть ALTER TABLE в транзакцию, чтобы переименование прошло атомарно
