0

RPM 似乎非常擅长检查依赖关系和处理单个文件更新,但是对于跨多个版本的关系数据库处理累积更新的最佳实践是什么?

例如,假设您的产品 Foo 的版本为 1.2.1、1.2.2、1.2.3 和 1.3.0。在其中的每一个中,都有需要 SQL 升级脚本的数据库架构更改。需要按顺序运行每个升级脚本才能升级到架构的当前版本。

假设客户安装了 1.2.2 并希望升级到 1.3.0。如何构建 RPM 包,以便您拥有适当的脚本并针对数据库执行正确的升级脚本?在这种情况下,您希望执行 1.2.3 和 1.3.0 的升级脚本,而不是 1.2.1 或 1.2.2 的升级脚本。因为那些大概已经被执行了。

一种替代方法是要求按顺序升级到每个中间版本,强制此示例中的用户在 1.3.0 之前升级到 1.2.3。这似乎不太理想。此外,这可能需要通过外部进程“强制”,因为我在 RPM SPEC 文件中没有看到任何表明这一点的内容。

是否有任何已知的技术来处理这个问题?一点谷歌搜索没有暴露任何。

编辑:“已知”是指“久经考验”而不是理论上的。

4

1 回答 1

0

为工作使用正确的工具。RPM 可能不是正确的工具。像 Liquibase 这样的东西会更适合这项任务。

于 2009-10-07T19:55:55.870 回答