2017-06-05 3 views
1

私たちの開発にはgitフローモデルを使用し、データベースのバージョン管理を効率的に管理するためにliquibaseを統合しようとしています。この問題は、開発者がフィーチャーブランチ上で作業していて、自分のデータベースと他の開発者のデータベースで実行されるDBスクリプトを作成したが、まだリリースされていないためタグ付けされていない。これで機能がテストされ、リリースの一部となり、チェンジセットにタグを付けて実動で実行します。GitFlow開発モデルでLiquibaseを管理する

スクリプトが実行された時点でタグが定義されておらず、更新しようとすると現在のタグにエラーが表示されるため、開発者のマシンで行われた変更をロールバックする方法が問題です。存在する "。

これらの条件をliquibaseで効率的に管理する方法はありますか?

答えて

0

我々はGitのかGitFlowのが、データベース自体にリンクされていない何をすべきか:

デシベルスクリプトが実行されるたびに、それはまた、専用のテーブルで言ったスクリプトの実行を記録するラッパーを介して行われますデータベースの。
このようにして、次回同じスクリプトが適用されると、ラッパーはそれが既に実行されたことを検出し、再度適用しません。

これはproduct like Flywayの実装です(この回答に示すように、you can use both: Liquidbase and Flyway、それらはseem to differ)。
重要:これはバージョンコントロールシステムだけでは管理できません。データベースアップグレードプロセスを実施/制御するための追加ツールが必要です。

+0

このシナリオでは、どのように条件を処理しますか?問題はスクリプトがリリースタグの一部ではないチェンジセットで既に実行されていることです。リリースの一部になった時点で、適切なリリースタグでチェンジセットを適用する必要があります。 –

+0

一般に、最初のスクリプトの導入を修正する2番目のスクリプトをリリースに追加します – VonC

関連する問題