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