使用liquibase变更集和yaml格式检查dml文件中多条记录的前提条件

使用liquibase变更集和yaml格式检查dml文件中多条记录的前提条件,yaml,liquibase,Yaml,Liquibase,我有一个先决条件,可以使用Liquibase变更集和YAML格式检查DML文件中的多个记录: 我要求添加应存在的检查记录的前提条件: -变更集: id:18.5.1 作者:萨格沃尔 注释:PROD-5303 |删除|模板|列|映射|附件 先决条件: -onFail:MARK_-RAN -sqlCheck: -不是: 预期结果:0 sql:从电子邮件中选择计数(*); 变化: -删除: 表格名称:es_电子邮件 其中:模板_id=从abc中选择id,其中name='XYZ'; 但它不起作用。我们

我有一个先决条件,可以使用Liquibase变更集和YAML格式检查DML文件中的多个记录:

我要求添加应存在的检查记录的前提条件:

-变更集:
id:18.5.1
作者:萨格沃尔
注释:PROD-5303 |删除|模板|列|映射|附件
先决条件:
-onFail:MARK_-RAN
-sqlCheck:
-不是:
预期结果:0
sql:从电子邮件中选择计数(*);
变化:
-删除:
表格名称:es_电子邮件
其中:模板_id=从abc中选择id,其中name='XYZ';
但它不起作用。我们怎么检查这个?请举例说明。
在XML中,我们喜欢:


从电子邮件中选择计数(*);

…但是在YAML中?

您的YAML的第一个问题是,
-not:
中的
-
后面没有空格,所以它是空的。然而,还有其他问题,其中最明显的是,在XML中,
sqlCheck
not
的子级,但在YAML中它们是兄弟

Liquibase中YAML的文档非常糟糕。然而,通过谷歌搜索“Liquibase YAML sqlCheck”,我们发现,一项快速调查表明,您的YAML有以下改进:

preConditions: 
  - onFail: MARK_RAN
  - not:
    - sqlCheck:
        expectedResult: 0
        sql: select count(*) from es_email;

您的YAML无法解析,因为
not:
中的
-
后面没有空格。不过,我想这并不能解决你的问题。我对Liquibase一无所知,但XML和YAML之间存在结构上的差异。在XML中,
sqlCheck
的子项而不是
,但在YAML中它们是兄弟。