По порядку Middle Стратегии деплоя спрашивают часто обновлено
Переименование колонки без простоя
Вопрос
Расставьте шаги переименования колонки name в full_name без простоя и с возможностью отката на каждом шаге.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Бэкфилл full_name для старых строк пачками
- 2Деплой: код пишет в name и full_name
- 3Миграция: удалить колонку name
- 4Деплой: код читает из full_name
- 5Деплой: код перестаёт писать в name
- 6Миграция: добавить колонку full_name (nullable)
Показать ответ и разбор
Коротко
Сначала расширяем схему, затем учим код новой колонке, переносим данные, переключаем чтение и только в конце сужаем схему. Удалять колонку можно, когда ни одна работающая версия кода её не использует, иначе старые поды при rolling или откате упадут.
Правильный порядок
- 1Миграция: добавить колонку full_name (nullable)
- 2Деплой: код пишет в name и full_name
- 3Бэкфилл full_name для старых строк пачками
- 4Деплой: код читает из full_name
- 5Деплой: код перестаёт писать в name
- 6Миграция: удалить колонку name
Разбор
Сначала расширяем схему, затем учим код новой колонке, переносим данные, переключаем чтение и только в конце сужаем схему. Удалять колонку можно, когда ни одна работающая версия кода её не использует, иначе старые поды при rolling или откате упадут.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.