0

私は2つのファイルを持っています.db構造とdbデータsqlファイルです。(変更ファイルを作成しているプロジェクトにはまだ参加していません)。

これらのファイルのいずれかがmavenを使用して変更された場合、毎回ビルドする前にこれらのファイルを実行する方法はありますか?

私が持っている唯一のアイデアは、ファイルを変更するたびにファイルの名前を変更して(バージョンを上げて)、フライアウェイが確実にそれを取得するようにすることです。

おそらくAPIまたは他の「トリック」を使用して、よりスマートな方法はありますか?

ありがとう

--MB

4

2 に答える 2

7

次の構成で flyway migrate を使用できます

validationMode=ALL
validationErrorMode=CLEAN

SQL 移行ごとに、SQL スクリプトの実行時に CRC32 チェックサムが計算されます。検証メカニズムは、クラスパス内の SQL 移行に、データベースで既に実行された SQL 移行と同じチェックサムがあるかどうかをチェックします。

validationErrorMode=CLEAN は、開発の利便性のみを目的としています。移行スクリプトが SCM にチェックインされて実行された後は、移行スクリプトを変更しないことを強くお勧めします。これにより、このケースをスムーズに処理する方法が提供されます。データベースは自動的に消去され、次の移行で SCM にチェックインされた状態に戻ることが保証されます。

この構成は、API、maven プラグイン、またはコマンド ラインから使用できます。

于 2011-07-15T13:13:53.707 に答える
0

新しい Flyway では、

flyway.setInitOnMigrate(true);
flyway.setCleanOnValidationError(true);
flyway.setValidateOnMigrate(true);

ファイルのチェックサムが変更された場合、またはバージョン テーブルが欠落している場合は、すべてを削除します。

于 2014-04-25T15:47:59.540 に答える