1

我是后端开发的新手,目前正在尝试向我的 app_user 表添加一列。如下所示。

- changeSet:
      id: 300520202335
      author: Malindu De Alwis
      changes:
        - addColumn:
            tableName: app_user
              columns:
              -column:
                name: address
                type: VARCHAR(255)

它给出了这个错误

Caused by: org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here

在“阅读器”第 23 行第 22 列中:列:^

我使用 Spring boot 和 postgre sql。请尝试找出问题

4

3 回答 3

4

我遇到了同样的问题,我发现 liquibase.com 上给出的示例代码有 2 个问题:

  • “columns”应该与“tableName”的缩进相同
  • 别人提到的“-”和“列”之间的空格

例子应该是

changeSet:
  id: addColumn-example
  author: liquibase-docs
  changes:
    - addColumn:
        tableName: person
        columns:
            - column:
                name: middlename
                type: varchar(50)

官方示例无法编译,这有点令人失望。

于 2020-07-20T10:35:41.867 回答
1

如果您查看示例 yaml 测试更改日志,例如此处包含的示例:https ://github.com/liquibase/liquibase/blob/master/liquibase-core/src/test/resources/liquibase/parser/core/yaml/testCasesChangeLog .yaml - 您将能够以有效的addColumnyaml 格式复制更改类型。例如:

    - changeSet:
        id: using after column attribute
        author: cmouttet
        changes:
            - addColumn:
                columns:
                    - column:
                        afterColumn: firstname
                        name: middlename
                        type: varchar(50)
                tableName: person 

我相信@tobhai 是正确的—— - column.

于 2020-06-01T17:31:20.537 回答
0

我认为错误是由于-column. 你试过- column吗?

于 2020-05-31T14:41:40.770 回答