В RHQ (http://rhq -project.org / ) у нас есть некоторые dbutils, у которых есть описание схемы в XML, которое служит для заполнения начальной схемы в пустой базе данных, а затем другой XML-файл, который регистрируетсяизменяется в этой базовой схеме как отдельные "diffs" операторов DDL и DML.
Всякий раз, когда изменяется класс JPA (соответствующим образом для схемы), обновляются оба файла XML.При следующем запуске установщика он просмотрит существующую базу данных, соберет ее версию и затем воспроизведет все шаги обновления от версии в БД до самой последней.
Этот код dbutils доступен в git .
Существуют и другие структуры, такие как liquibase , которые могут вам помочь.