Мы управляем веб-сайтом в AWS, который использует Azure в качестве источника данных. В Azure используется репликация транзакций от наших клиентов. Раз в 3 или 4 месяца выходит новая версия клиентской базы данных. Моя компания не ведет эту базу данных клиентов. Чаще всего новая версия не поставляется со сценарием обновления, вся информация о клиентах стирается, а новая версия базы данных создается заново.
Как мне поддерживать непрерывную историю данных клиентов в облаке с помощью этих обновлений? Я вижу только два варианта: создать новую базу данных для каждой версии, создать новую схему для каждой версии. Первый со временем подорожает, второй кажется хакерским. Если это так важно, должен ли я просто делать свои собственные сценарии обновления?
Поскольку вам необходимо поддерживать исторические данные, а также управлять версиями базы данных, вы можете использовать flyway для создания базовой линии вашей базы данных, а затем перенести ее на новые версии после того, как у вас будет DDL для этого. Flyway будет хранить для вас историю версий, и вы можете видеть свои обновления, используя цели maven с вашими профилями базы данных. Однако вам не обязательно использовать maven, вы можете использовать интерфейс командной строки, предоставляемый flyway.
По сути, это удовлетворяет ваш второй выбор за счет использования инструмента, позволяющего повторять процессы в разных средах (например, DEV, QA, Staging, PROD). Вы просто используете разные профили в процессе миграции.
Вот программное обеспечение, которое вам понадобится: https://flywaydb.org