gpt4 book ai didi

database - Liquibase:columnName 是必需的

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:13 27 4
gpt4 key购买 nike

尝试使用 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::AXRGU02

Liquibase 文档没有说明任何带有属性“columnName”或“columnType”的标签,这让我更加困惑。

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

最佳答案

您的 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: STATUS

关于database - Liquibase:columnName 是必需的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45981518/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com