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