По порядку Middle Стратегии деплоя спрашивают часто обновлено

Переименование колонки без простоя

Вопрос

Расставьте шаги переименования колонки name в full_name без простоя и с возможностью отката на каждом шаге.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Бэкфилл full_name для старых строк пачками
  2. 2
    Деплой: код пишет в name и full_name
  3. 3
    Миграция: удалить колонку name
  4. 4
    Деплой: код читает из full_name
  5. 5
    Деплой: код перестаёт писать в name
  6. 6
    Миграция: добавить колонку full_name (nullable)
Показать ответ и разбор

Коротко

Сначала расширяем схему, затем учим код новой колонке, переносим данные, переключаем чтение и только в конце сужаем схему. Удалять колонку можно, когда ни одна работающая версия кода её не использует, иначе старые поды при rolling или откате упадут.

Правильный порядок

  1. 1
    Миграция: добавить колонку full_name (nullable)
  2. 2
    Деплой: код пишет в name и full_name
  3. 3
    Бэкфилл full_name для старых строк пачками
  4. 4
    Деплой: код читает из full_name
  5. 5
    Деплой: код перестаёт писать в name
  6. 6
    Миграция: удалить колонку name

Разбор

Сначала расширяем схему, затем учим код новой колонке, переносим данные, переключаем чтение и только в конце сужаем схему. Удалять колонку можно, когда ни одна работающая версия кода её не использует, иначе старые поды при rolling или откате упадут.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.