0

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つの代替方法は、各中間バージョンに順番にアップグレードすることを要求することです。この例のユーザーは、1.3.0より前の1.2.3にアップグレードする必要があります。これは最適ではないようです。また、RPM SPECファイルにはこれを示すものが何も表示されないため、これはおそらく外部プロセスを通じて「強制」する必要があります。

これを処理するための既知の手法はありますか?グーグルのビットは何も公開しませんでした。

編集:「既知」とは、理論的ではなく「試行錯誤された」という意味です。

4

1 に答える 1

0

仕事に適したツールを使用してください。RPMはおそらく適切なツールではありません。Liquibaseのようなものがこのタスクにより適しています。

于 2009-10-07T19:55:55.870 に答える