将liquibase从3.2升级到3.3时获得“无效的默认值”

3mpgtkmj  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(580)

我使用的是Liquibase3.2,正在尝试升级到3.3,我使用的是MySQL5.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更改集中出现过很多次。

xu3bshqb

xu3bshqb1#

失败的变更集不应该写入数据库中的databasechangelog表,因此如果您更改了这个特定的变更集,就不需要重新计算校验和。此外,您可以随时尝试回滚特定的变更集,或者只需打开提到的databasechangelog表并手动更新其中的确切记录(例如,删除有关应用变更集的信息:)。顺便问一下:为什么使用defaultvaluenumeric而不是defaultvalueboolean?

u0njafvf

u0njafvf2#

对于这样的每一个示例,您可以添加一个 validChecksums 属性,该属性列出了更改前和更改后更改集的校验和。

相关问题