Давай порассуждаем логически: какая может быть неправильная миграция базы данных, из-за которой при переключении на старую версию приложения получаем 500 ошибку (например, если в одном деплое одновременно удалили столбец и код, который к нему обращается)? Как этого избежать?

Старая версия падает, если миграция уже удалила или переименовала используемый ею столбец. Откат кода не откатывает совместимость схемы; применяют expand–migrate–contract.

Короткий ответ

Что ответить на собеседовании

Старая версия падает, если миграция уже удалила или переименовала используемый ею столбец. Откат кода не откатывает совместимость схемы; применяют expand–migrate–contract.

Подробный разбор

Ответ с пояснениями

Старая версия падает, если миграция уже удалила или переименовала используемый ею столбец. Откат кода не откатывает совместимость схемы; применяют expand–migrate–contract.

Сначала добавьте новую структуру, сохранив старую. Затем выпустите совместимый код, перенесите данные и переключите чтение/запись. Удаляйте старый столбец только после завершения окна rollback и остановки старых процессов. Проверяйте одновременно web, workers и отложенные задания. Миграция down не всегда безопасно восстанавливает потерянные данные, поэтому нужна стратегия отката, а не только обратный SQL.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее