我有一个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要在数据库changesets表中创建条目,将这些变更集标记为已执行?
发布于 2019-09-19 11:24:05
Liquibase从如下注释中读取sql文件中变更集的信息:
--changeset harv:1
因此,当解析你的文件时,它会找到这一行并创建一个变更集"harv:1“。然后,由于您已经注释掉了实际的sql,因此变更集将为空。但它仍然是一个变更集。当它执行所有变更集时,它还将执行"harv:1“,但其中没有sql,因此什么也不会发生。不过,它仍会将此变更集标记为已执行。
我没有通过实际执行示例来验证这一点。这只是我对可能发生的事情的理论。
https://stackoverflow.com/questions/58008811
复制相似问题