是否可以在YAML中使用前提条件?除了此页面之外,我没有找到任何来源http://www.liquibase.org/documentation/yaml_format.html

但我正在寻找的等效项:

<changeSet id="addColumn-example">
  <preConditions onFail="MARK_RAN">
     <columnExists schemaName="earls"
           tableName="category" columnName="display_name"/>
  </preConditions>
  <dropColumn columnName="display_name" schemaName="earls" tableName="category"/>
</changeSet>

所以我的自然翻译是:
changeSet:
  id: addColumn-example
  author: francis
  preConditions:
    - columnExist:
      schemaName: earls
      tableName: category
      columnName: display_name
  changes:
    - addColumn:
      columns:
        - column:
          name: display_name
          type: varchar(100)

但我想念onFail ...

最佳答案

该主题的文献记录不多,但是经过多次尝试...您可以编写如下内容:

databaseChangeLog:
  - changeSet:
      id: 1
      author: pazfernando
      preConditions:
        - onFail: MARK_RAN
        - tableExists:
            schemaName: sa
            tableName: PROVEEDORBIENSERVICIO
      changes:
        - renameTable:
            newTableName: PROVEEDORBIENSERVICIO
            oldTableName: PROVEEDORSERVICIO
            schemaName: sa

这是sqlCheck的另一个示例:

preConditions:
  - onFail: CONTINUE
  - onError: CONTINUE
  - sqlCheck:
      expectedResult: 0
      sql: select count(*) from oss_organization where Status is null
  - sqlCheck:
      expectedResult: 0
      sql: select count(*) from oss_organization where Type is null

10-04 19:49