首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Liquibase:需要columnName

Liquibase:需要columnName
EN

Stack Overflow用户
提问于 2017-08-31 12:30:33
回答 1查看 1.2K关注 0票数 4

尝试使用Liquibase添加一个列,我就被困住了。

YAML:

代码语言:javascript
复制
databaseChangeLog:
- changeSet:
    id: add-status-1
    author: me
    failOnError: true
    changes:
    - addColumn:
        tableName: CODEENTRY
        columns:
        - column:
          name: STATUS
          type: char(3)
          value: USE
    rollback:
    - dropColumn:
        tableName: CODEENTRY
        columnName: STATUS

启动应用程序以启动迁移时,会发生以下错误:

代码语言:javascript
复制
columnName is required, classpath:db/changelog/initial/20-add-status.yaml::add-status-1::AXRGU02
columnType is required, classpath:db/changelog/initial/20-add-status.yaml::add-status-1::AXRGU02

Liquibase文档没有声明任何属性为"columnName“或"columnType”的标记,这使我更加困惑。

有人知道如何解决这个问题吗?或者我的YAML有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-31 18:01:11

您的YAML是有效的,但语义不正确。

本部分:

代码语言:javascript
复制
- column:
  name: STATUS
  type: char(3)
  value: USE

定义这是一个列表(-)的条目,列表项是一个映射,因为它由键值对组成。第一个键值对是column:.由于以下键的缩进方式与column:相同,因此它们被视为成功的键值对。因此,您的键column:保存一个空值。您需要的是键column:将所有其他值作为嵌套映射保存。为此,您需要进一步缩进其他键:

代码语言:javascript
复制
- column:
    name: STATUS
    type: char(3)
    value: USE

在以下方面:

代码语言:javascript
复制
databaseChangeLog:
- changeSet:
    id: add-status-1
    author: me
    failOnError: true
    changes:
    - addColumn:
        tableName: CODEENTRY
        columns:
        - column:
            name: STATUS
            type: char(3)
            value: USE
    rollback:
    - dropColumn:
        tableName: CODEENTRY
        columnName: STATUS
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45981518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档