Как организовать процесс миграции базы данных без прерывания работы сервиса (CI/CD)?

Используйте совместимые этапы expand–migrate–contract: сначала добавьте поддерживаемую старым кодом схему, затем перенесите данные и переключите приложение, а удаление старого выполните позднее.

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

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

Используйте совместимые этапы expand–migrate–contract: сначала добавьте поддерживаемую старым кодом схему, затем перенесите данные и переключите приложение, а удаление старого выполните позднее.

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

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

Используйте совместимые этапы expand–migrate–contract: сначала добавьте поддерживаемую старым кодом схему, затем перенесите данные и переключите приложение, а удаление старого выполните позднее.

Миграцию запускают один раз под контролем CI/CD, а не одновременно всеми репликами. Оценивают locks, размер таблицы, timeout и доступное место; backfill делают ограниченными партиями с наблюдением. Новая и старая версии должны временно сосуществовать. Откат приложения не всегда означает безопасный откат схемы, поэтому план восстановления продумывают отдельно. После проверки чтения и записи прекращают поддержку старого формата и выполняют contract-шаг.

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

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

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

Подробнее