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