Мы должны выполнить миграцию данных в БД Mongo для нашего приложения.
В рамках миграции
- Мы переименовали поле.
- Мы должны добавить новый атрибут.
- Мы должны изменить значение поля, если оно удовлетворяет определенному условию.
У нас есть 2 варианта,
Напишите скрипт миграции, который выполняет изменения. И обновите исходный код на основе новой структуры схемы.
Выполните " миграцию на месте " - обновите источник, чтобы мы выполняли миграцию только для тех строк, к которым у нас есть доступ. В любой момент наш код поддерживает как старую, так и новую схему. Мы обновим код после переноса всех данных, что маловероятно.
Преимущество первого в том, что это делается раз и навсегда. Но нужно утомительное тестирование.
Преимущество последнего в том, что тестирование простое, вам просто нужно проверить строки, к которым вы обращаетесь.
Какая лучшая практика в использовании?
Этот вопрос может выглядеть как вопрос о мнении. Но то, что я ищу, - это подход, поддерживаемый надлежащим рациональным.