尝试使用Liquibase添加一个列,我就被困住了。
YAML:
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启动应用程序以启动迁移时,会发生以下错误:
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::AXRGU02Liquibase文档没有声明任何属性为"columnName“或"columnType”的标记,这使我更加困惑。
有人知道如何解决这个问题吗?或者我的YAML有什么问题?
发布于 2017-08-31 18:01:11
您的YAML是有效的,但语义不正确。
本部分:
- column:
name: STATUS
type: char(3)
value: USE定义这是一个列表(-)的条目,列表项是一个映射,因为它由键值对组成。第一个键值对是column:.由于以下键的缩进方式与column:相同,因此它们被视为成功的键值对。因此,您的键column:保存一个空值。您需要的是键column:将所有其他值作为嵌套映射保存。为此,您需要进一步缩进其他键:
- 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: STATUShttps://stackoverflow.com/questions/45981518
复制相似问题