RPM似乎非常擅长检查依赖关系和处理单个文件更新,但是处理跨多个版本的关系数据库的累积更新的最佳实践是什么?
例如,假设您有版本为1.2.1、1.2.2、1.2.3和1.3.0的产品foo。在每一项中,都有需要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规范文件中没有看到任何指示这一点的内容。
有什么已知的处理方法吗?一点谷歌搜索都没有曝光。
编辑:我所说的“已知”,是指“尝试和证明”,不是理论上的。