在 liquibase 格式的 sql 文件中注释 sql 查询
Posted
技术标签:
【中文标题】在 liquibase 格式的 sql 文件中注释 sql 查询【英文标题】:comment sql queries in liquibase formatted sql files 【发布时间】:2019-09-19 10:18:29 【问题描述】:我有 liquibase 格式的 sql 文件,其中包含以下变更集,其中 sql 查询被注释掉
--liquibase formatted sql
--changeset harv:1
--comment test
--update table set col=null;
--changeset harv:2
--comment test
--update table set col1=null;
当我在 oracle 数据库上运行 liquibase 时,这些查询没有被执行,因为我评论了它们,但是正在执行这些变更集的数据库更改日志表中的条目。
这是评论 sql 查询的正确方法吗?如果这就是为什么 liquibase 会在 databasechangelog 表中将这些更改集标记为已执行?
【问题讨论】:
【参考方案1】:Liquibase 从 cmets 中读取 sql 文件中变更集的信息,例如:
--changeset harv:1
因此,在解析您的文件时,它会找到这一行并创建一个变更集“harv:1”。 然后,由于您已经注释掉了实际的 sql,因此变更集将为空。但它仍然是一个变更集。 当它执行所有变更集时,它也会执行“harv:1”,但其中没有 sql,所以什么也没有发生。它仍然会将此变更集标记为已执行。
我还没有通过实际执行示例来验证这一点。这只是我对可能发生的事情的理论。
【讨论】:
我已经验证过了。是真的。同样对于不创建变更集,我也像这样-- --changeset harv:1
注释掉了变更集
好。标记这是正确的答案。这就是你在 *** 上的做法。 :-)以上是关于在 liquibase 格式的 sql 文件中注释 sql 查询的主要内容,如果未能解决你的问题,请参考以下文章
Liquibase命令所产生的结果与直接在SQL中运行它的结果不同
仅使用 databasechangelog 表生成 liquibase sql 文件
Liquibase Autopick 可以像 Flyway 这样的新变更集文件吗?