По порядку Senior Миграции обновлено

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

Вопрос

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

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

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

  1. 1
    Релиз кода, который пишет в обе колонки
  2. 2
    Релиз кода, который читает и пишет только full_name
  3. 3
    Отдельной миграцией удалить колонку name
  4. 4
    Фоновый перенос данных из name в full_name пачками
  5. 5
    Миграция: добавить nullable-колонку full_name
Показать ответ и разбор

Коротко

Каждый шаг совместим с соседними версиями кода, поэтому откат на шаг назад безопасен. Удаление старой колонки идёт последним и отдельно, когда старый код точно больше нигде не работает.

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

  1. 1
    Миграция: добавить nullable-колонку full_name
  2. 2
    Релиз кода, который пишет в обе колонки
  3. 3
    Фоновый перенос данных из name в full_name пачками
  4. 4
    Релиз кода, который читает и пишет только full_name
  5. 5
    Отдельной миграцией удалить колонку name

Разбор

Каждый шаг совместим с соседними версиями кода, поэтому откат на шаг назад безопасен. Удаление старой колонки идёт последним и отдельно, когда старый код точно больше нигде не работает.

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

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