Database Liquibase:需要columnName

Database Liquibase:需要columnName,database,yaml,database-migration,liquibase,Database,Yaml,Database Migration,Liquibase,尝试使用Liquibase添加列,我被卡住了 亚马尔: 启动应用程序以启动迁移时,会发生以下错误: 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 Liqui

尝试使用Liquibase添加列,我被卡住了

亚马尔:

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

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有什么问题吗?

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

本部分:

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

- column:
    name: STATUS
    type: char(3)
    value: USE
在这方面:

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

我从未使用过YAML,但是:相对于
缩进
名称:
。YAML对缩进敏感吗?@a_horse_和_no_name我已经用各种YAML解析器检查过了。这个缩进似乎是正确的。(示例:,复制YAML上面的内容并查看JSON输出)今天一位同事也指出了这一点。谢谢你的回答。
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