Ранее я работал над продуктом, связанным с хранилищем данных и предназначенным для установки на клиентских сайтах, если это необходимо.Следовательно, программное обеспечение знало, как выполнить «установку» (главным образом, создание необходимой схемы базы данных и заполнение статических данных, таких как коды валюты / страны и т. Д.).
, поскольку у нас была эта информация в кодесамо по себе, и поскольку у нас были подключаемые адаптеры SQL, было тривиально заставить этот код работать с базой данных в памяти (мы использовали HSQL).Следовательно, мы выполнили большую часть нашей реальной работы по разработке и тестированию производительности на «реальных» локальных серверах (Oracle или SQL Server), но все модульное тестирование и другие автоматизированные задачи выполнялись для баз данных в памяти для конкретных процессов.
Нам очень повезло в этом отношении, что если произошло изменение в централизованных статических данных, нам нужно было включить их в часть обновления инструкций по установке, поэтому по умолчанию они были сохранены в репозитории SCM, проверены разработчиками иустановлен как часть их нормального рабочего процесса.Если подумать, это очень похоже на предложенную вами идею журнала изменений БД, за исключением немного более формализованного и окруженного слоем абстракции для конкретной области.
Эта схема работала очень хорошо, потому что любой могза несколько минут создайте полностью работающую БД с актуальными статическими данными, не наступая ни на чьи ноги.Я не могу сказать, стоит ли это, если вам не нужны функциональные возможности установки / обновления, но я все равно рассмотрю это, потому что это делает зависимость от базы данных совершенно безболезненной.