我尝试使用liquibase使用liquibase“ addDefaultValue”语法将列的默认值设置为null:
<changeSet id="20181213171501-2">
<!-- Add default value -->
<addDefaultValue tableName="myTable"
columnDataType="boolean"
columnName="myColumn"
defaultValueBoolean="null" />
</changeSet>
但是向myTable插入新行表明,默认值仍然像以前一样设置为'false'。因此,liquibase变更集无法正常工作。
如何使用liquibase将列默认值设置为null?
答案 0 :(得分:1)
dropDefaultValue重构正是这样做的:它将可为空的列的默认值重置为null。
<changeSet id="20181213171501-2">
<!-- Reset default value to NULL -->
<dropDefaultValue tableName="myTable" columnName="mColumn" />
</changeSet>
答案 1 :(得分:0)
我发现的解决方案是使用原始SQL查询而不是liquibase的“ addDefaultValue”语法:
<changeSet id="20181213171501-2">
<!-- Add default value -->
<sql dbms="mysql">
ALTER TABLE myTable MODIFY myColumn BOOLEAN NULL DEFAULT NULL
</sql>
</changeSet>