Мы используем liquibase 1.9.5, но я не видел в этом известной ошибки для этой версии. Короче говоря, мы успешно запустили liquibase для нашей версии 1.0, но при попытке запустить нашу версию 1.1, в которой есть дополнительные наборы изменений, она ошибается, жалуясь на md5sums набора изменений 1.0.
Мы обошли это в краткосрочной перспективе, просто обнулив столбец md5sum в DATABASECHANGELOG, но мне интересно, просто делаю ли я что-то не так.
Мы организуем нашу ликвидазу следующим образом:
Один основной XML-файл, который мы запускаем при каждом развертывании, в котором есть команды для отдельного файла для каждой версии нашего программного обеспечения (в правильном порядке)
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
<include file="v1_0.xml" />
<include file="v1_1.xml" />
</databaseChangeLog>
Итак, первый выпуск включал только v1_0.xml, а выпуск, который мы только что выпустили, включал в себя то, что мы имели выше.
Файл v1_0.xml не менялся между выпусками, но мы получили следующую ошибку при попытке вызвать liquibase для нового выпуска:
SEVERE: Validation Failed:
1 change sets check sum
v1_0.xml::foo_schema::bdeacon::(MD5Sum: ff63b8d1739e6cf1dcaed6a0ef585257)
Набор изменений, о котором идет речь:
<changeSet author="bdeacon" id="foo_schema">
<preConditions onFail="MARK_RAN">
<not><tableExists tableName="some_table"/></not>
</preConditions>
<sqlFile path="database/initial/foo-schema.sql" />
</changeSet>
Упомянутый файл foo-schema.sql также не менялся между выпусками. (Он выполняет первоначальное создание всей нашей схемы базы данных для нас, которая затем включает «some_table», упомянутую в предварительном условии.)
Я надеюсь, что liquibase не ожидает, что мы вручную добавим элемент validCheckSum в каждый набор изменений между выпусками ...