У нас есть собственный инструмент, который сравнивает представление Hibernate нашего приложения с журналом изменений Liquibase, который управляет базой данных. Это использует Liquibase 3.3.1, который обнаружил разницу в базе данных, которую Liquibase 2.x не видел, и которую мы предпочли бы игнорировать. Мы уже игнорировать все виды в сравнении:Игнорировать элементы в Liquibase diff
CompareControl control = new CompareControl();
control.getComparedTypes().remove(View.class);
DiffResult result = liquibase.diff(reference, target, control);
DiffOutputControl output = new DiffOutputControl(false, false, false);
DiffToChangeLog changeLog = new DiffToChangeLog(result, output);
Другие сравнения мы хотели бы игнорировать являются:
значения по умолчанию. При добавлении столбцов в базу данных мы используем значения по умолчанию, которые Hibernate не знает:
<changeSet author="adrian (generated)" id="1419421913188-163">
<dropDefaultValue columnDataType="timestamp(29,6)" columnName="timestamp" tableName="transportjob"/>
</changeSet>
Внешние ограничения ключа. Мы меняем некоторые ограничения внешнего ключа на CASCADE
. (Это полная противоположная проблема: Liquibase Diff Tool missing constraints).
<changeSet author="adrian (generated)" id="1419421913188-90">
<dropForeignKeyConstraint baseTableName="site" constraintName="fk_rpietmexbx0ywmlywidira71h"/>
<addForeignKeyConstraint baseColumnNames="logo_id" baseTableName="site" constraintName="fk_rpietmexbx0ywmlywidira71h" referencedColumnNames="id" referencedTableName="image"/>
</changeSet>