【问题标题】:Liquibase : issue with setting boolean default valueLiquibase:设置布尔默认值的问题
【发布时间】:2018-10-14 16:30:11
【问题描述】:

我正在尝试使用 liquibase 添加一个新字段

<addColumn tableName="contact_client">
            <column defaultValue="0"
                    defaultValueBoolean="0"
                    name="obsolete"
                    type="boolean"/>
        </addColumn>

但我收到此错误:

liquibase.exception.DatabaseException:默认值无效 '过时' [失败的 SQL:ALTER TABLE myApp.contact_client ADD 过时 BIT(1) DEFAULT 'false' NULL]

如何传递默认值?

【问题讨论】:

  • 我猜你正在使用mySQL?错误消息来自您的数据库。虽然 liquibase 当然创建了 SQL。您可以尝试通过在数据库上手动运行生成的 SQL 来找出问题所在。 (也许DEFAULT false 上没有单引号?)当您知道出了什么问题时,也许可以在liquibase jira 中查找已经报告的错误。或者只是将更改日志defaultValue="0" 的值更改为其他值(尽管我怀疑 0 值是问题所在)。

标签: liquibase


【解决方案1】:

其实,这里是 MySQL 数据库的解决方案:

<addColumn tableName="contact_client">
    <column defaultValueBoolean="false"
            name="obsolete"
            type="boolean"/>
</addColumn>

我需要删除 defaultValue 属性。

【讨论】:

    【解决方案2】:

    我使用defaultValue="0"解决了这个问题

    源代码:

    数据库值:

    注意:我正在使用 SQL 服务

    希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2020-05-21
      • 2019-04-21
      • 2022-01-25
      • 2019-05-15
      • 2013-03-06
      • 2019-11-09
      • 2015-03-28
      • 1970-01-01
      • 2011-12-13
      相关资源
      最近更新 更多