我正在尝试使用Liquibase来管理设备的后端SQLite数据库。这个想法是,在安装时,应用程序可以生成回滚脚本,如果应用程序被卸载并替换为早期版本,则可以使用该脚本。如何在Liquibase中每天创建多个标签?
出现的问题是,运行tagDatabase
变更集将覆盖当天早些时候完成的所有标记。检查documentation揭示了标记操作运行如下面的示例SQL:
UPDATE DATABASECHANGELOG SET TAG = 'version_1.3' WHERE DATEEXECUTED = (SELECT MAX(DATEEXECUTED) FROM (SELECT DATEEXECUTED FROM DATABASECHANGELOG) AS X);
那么,有没有Liquibase的一天做多个标签的范围内的方法吗?还是我需要编写自己的SQL来更改DATABASECHANGELOG
表?我宁愿不这样做,因为它可能会打破未来版本的Liquibase。
我没有明白你的意思,“出现的问题是运行tagDatabase变更集将覆盖当天早些时候完成的任何标签。”它只是标记数据库中最后一次执行的变更集,其中包含您指定的标记,您覆盖的问题是什么? – dbf
我的问题是,在覆盖现有标签时,不再可能针对它们生成回滚。 –