我们正在使用liquibase进行数据库部署。我们目前正在进行一些重构。有一个旧的变更集正在运行一个sql脚本。这已经在过去执行过了。现在这个sql脚本(或其中的语句)已过时,我想从我们的VCS系统中删除。我这样做并尝试再次部署,但我得到一个例外,说sql文件不在那里,虽然我的Changeset有runAlways =" false"和runOnChange =" false"。
这是否意味着我必须始终将特定的sql脚本始终保留在我的CVS中,尽管它已被弃用?
答案 0 :(得分:1)
根据校验和如何在Liquibase上运行,您无法删除它。从技术上讲,您运行该变更集一次,并且在DB上发生了一些事情,然后liquibase为您的文件创建了校验和。现在,如果你更改它的某些部分,liquibase会说你的文件已更新,你不能这样做。
总而言之,您的文件是应用程序构建故事的一部分,即使它不再有用,也无法摆脱它。
如果您不是生产情况,一个解决方案可能是从当前数据库创建一个转储为init.sql并从那里开始。
我希望这会对你有所帮助。