Я использовал LIquibase 3.2 и пытаюсь перейти на 3.3, и я использую MySql 5.5. Однако обновление не выполняется для следующих типов наборов изменений...
<changeSet author="me" id="my_changeset">
<addColumn tableName="my_table">
<column name="STUFF_VISIBLE" type="BOOLEAN" defaultValueNumeric="0">
<constraints nullable="false"/>
</column>
</addColumn>
</changeSet>
Ошибка с ошибкой
Error: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Invalid default value for 'STUFF_VISIBLE'
Есть ли способ исправить ситуацию, не переделывая все контрольные суммы? В моих наборах замены Liquibase существует ряд случаев этих типов выражений.
AFAIK неудачные обновления не должны быть записаны в таблицу DATABASECHANGELOG в вашей БД, поэтому, если вы измените этот конкретный набор изменений, вам не нужно будет пересчитывать контрольные суммы. Кроме того, вы всегда можете попытаться отменить конкретный набор изменений или просто открыть указанную таблицу DATABASECHANGELOG и обновить точную запись вручную (например, удалить информацию об использовании набора изменений :)). Кстати: почему вы используете defaultValueNumeric вместо defaultValueBoolean?
Для каждого экземпляра такого типа вы можете добавить атрибут validChecksums
в validChecksums
изменений, который перечислил контрольную сумму validChecksums
изменений до изменения, а также после изменения.