4

liquibaseやflywayなどのツールを使用すると、データベースを簡単にアップグレードできます。私が頭に浮かんだのは、リリースブランチとトランクの両方で発生する変更を最適に処理する方法です。

例:

製品に含まれている私のコードはバージョン2.5であり、リリースブランチにあります。その間、開発者はトランク上に存在するバージョン3.0の作業を開始しました。

本番環境でバグが見つかりました。データベース変更スクリプトが作成され(2.5.1)、リリースブランチにコミットされます。同じ変更スクリプトをトランク(3.0.1?)にマージして戻す必要があります。

バージョン3.xは、実際の本番環境にリリースされています。データベースには、2.5.1からの変更がすでに含まれています。アップグレードが失敗する可能性があります。

逆に、転送のみの戦略を使用してデータベースを最初から作成している場合、同じ変更が2回発生します(2.5.1と3.0.1)。

他の人はこのシナリオをどのように処理していますか?

4

1 に答える 1

1

本番DBの変更は常に線形であることに注意してください。

これを解決するには、DB移行2.5.1をブランチとトランクの両方に配置する必要があります。また、同じ変更を加えて3.0.1を作成しないでください。

このようにして、ブランチだけでなくトランクとともに展開されます。

その後、本番環境をトランクにアップグレードします

  • 移行2.5.1を見つけてスキップします。これは、すでに適用されているためです。
  • 移行3.0を見つけて、2.5.1データベースに適用します

もちろん、これまで以上に優れたソリューションがあります。そしてそれは、ブランチを完全に取り除き、代わりにフィーチャートグルを使用して常にトランクから解放することです。

于 2012-07-24T18:56:01.713 に答える