我正在使用rpm将liquibase数据库迁移添加到我们当前的产品部署中,并希望获得一些关于如何实现预期目标的建议/技巧。
rpm最好能够安装在全新且闪亮的开发人员环境中,以及现有的集成/生产系统中。
我已经使用generatechangelog为当前(预液化)db模式创建了一个xml变更日志,并且已经创建了主变更日志,可以根据需要使用新的变更集。
但是,我正在尝试确定有条件地在必要时一次性执行生成的初始模式的最佳方法(即:在新的db上)。上下文似乎不是超理想的,只是因为我需要一些其他的外部方式来与rpm通信它应该作为什么上下文运行,而且这看起来很容易出错。
我还希望遗留生成的变更日志显示为已在databasechangelog表中运行,并使项目显示为始终由liquibase管理。
感谢任何帮助或指导,
提前谢谢
1条答案
按热度按时间ntjbwcob1#
您可以将所有初始lb更改放在一个变更集中,并放置一个前提条件
tableExists
检查模型中的任何表。如果该表不存在->您有一个空的数据库,那么您的大变更集将创建所有对象。如果表存在->您正在现有数据库上运行,则应跳过它(使用onFail="MARK_RAN"
先决条件)。