Мне кажется, что ваша база данных имеет много параллелей с зависимостью двоичной библиотеки: она большая (ну, намного больше, чем разумная библиотека кода!), Двоичная и имеет свои собственные версии, которые должны соответствовать различным версиямваша кодовая база.
Учитывая это, почему бы не интегрировать менеджер зависимостей (например, Apache Ivy ) с процессом сборки и позволить ему управлять вашей базой данных?Это похоже на задачу, для которой был создан менеджер зависимостей.
Что касается огромного размера данных / загрузки, я не думаю, что есть какая-то волшебная палочка (если не считать какой-либо серьезной инфраструктуры предварительной загрузки документов), если только вы не можете сериализовать данные в дельта-способный формат (XML / JSON / SQL вы упомянули).
Второй подход (возможно, не очень совместимый с управлением зависимостями): если специфика вашего кода позволяет это сделать, вы можете сохранить второй файл, который представляет собой ручной diff, который может принимать базовую (версия 0) базу данных идоведите его до версии X. Каждый разработчик должен будет поддерживать чистую версию 0. Тяга (версии с измененной БД) будет состоять из: извлечь файл diff, скопировать версию 0 в рабочую базу данных, применить файл diff.Обратите внимание, что применение файла diff может занять некоторое время для большой базы данных, поэтому вы можете не экономить столько времени при прямой загрузке, как кажется на первый взгляд.