累積的な更新プログラムを処理するためのRPMの技術?
質問
RPMは依存関係をチェックし、個々のファイルのアップデートの取り扱いでかなり良いようだが、複数のバージョン間でのリレーショナル・データベース、たとえば、に累積的な更新プログラムを処理するためのベストプラクティスは何ですか?
たとえば、あなたはバージョン1.2.1、1.2.2、1.2.3、および1.3.0での製品はFooを持っていると言います。これらのそれぞれでは、SQLのアップグレード・スクリプトを必要なデータベース・スキーマの変更がありました。シーケンス内の各アップグレードスクリプトを実行すると、スキーマの現在のバージョンにまで取得する必要があります。
顧客は1.2.2がインストールされていると1.3.0にアップグレードすることを望んでいると言います。あなたが利用できる適切なスクリプトを持っており、データベースに対して正しいアップグレード・スクリプトを実行するように、どのように一つの構造RPMパッケージができますか?この例では、1.2.1または1.2.2用の1.2.3と1.3.0ではなく、もののためのアップグレードスクリプトを実行したいと思います。これらのことから、おそらく、すでに実行されています。
1つの代替は、1.3.0前1.2.3にアップグレードするには、この例では、ユーザを強制的に、シーケンス内の各中間バージョンにアップグレードすることを要求することです。これは最適ではないようです。私はこのことを示すことになるのRPM SPECファイルには何も表示されませんので、また、これはおそらく、外部プロセスを「強制」する必要があります。
これを処理するための任意の公知の技術はありますか?グーグルのビットがいずれも公開していませんでした。
EDIT: "既知" は、私は "しようとした実績のある" という意味では理論上ありません。
解決
仕事のための適切なツールを使用してください。 RPMはおそらく右のツールではありません。 LiquiBaseをのような何かが、この作業に適しだろう。