我有一个前提条件,使用Liquibase changeSet和YAML格式检查DML文件中的多条记录:
我要求添加检查记录应该存在的前提条件:
- changeSet:
id: 18.5.1
author: saggarwal
comment: PROD-5303 | DELETE | TEMPLATE_COLUMN_MAPPPING | ATT
preConditions:
- onFail: MARK_RAN
- sqlCheck:
-not:
expectedResult: 0
sql: select count(*) from es_email;
changes:
- delete:
tableName: es_email
where: template_id =select id from abc where name= 'XYZ';
但它不起作用。我们怎么检查这个?请举一些例子。
在XML中我们喜欢:
<preConditions onFail="MARK_RAN">
<not>
<sqlCheck expectedResult="0">
select count(*) from es_email;
</sqlCheck>
</not>
</preConditions>
......但在YAML?
答案 0 :(得分:1)
YAML的第一个问题是-
中的-not:
之后没有空格,因此它doesn't parse。还有其他问题,其中最明显的是,在你的XML中,sqlCheck
是not
的孩子,但在你的YAML中他们是兄弟姐妹。
Liquibase中YAML的文档非常糟糕。然而,谷歌搜索&#34; Liquibase YAML sqlCheck&#34;我们引导我们the tests,这是一个快速调查,建议对您的YAML进行以下改进:
preConditions:
- onFail: MARK_RAN
- not:
- sqlCheck:
expectedResult: 0
sql: select count(*) from es_email;