2

ドキュメント (http://flywaydb.org/getstarted/existingDatabaseSetup.html) は十分に明確ではないと思います。説明を例で示してほしいと思います。私はあなたのために1つ持っています:

本番データベースの 2 つの異なるバージョン (1 と 2) があり、そのスキーマ バージョンは暗黙的ですが、既存のテーブルをクエリすることによって決定論的であるとします。次に、ドキュメントに記載されていることをどのように達成しますか?

私の例では、2 つのバージョンの両方にスクリプトが添付されています。 バージョン 1: テーブル A を作成する バージョン 2: テーブル B を作成する

バージョン 1 および 2 のスクリプトに一致する Java 移行ファイルを作成しましたが、フライウェイ メタデータが見つからないため、スクリプトが実行されているかどうかをデータベースに照会し、その場合はスキップする必要があります。問題は、Flyway が初期化されていないため、アプリケーションがクラッシュすることです。

コマンドラインから Flyway を初期化する必要はありません。これは、展開時に自動的に実行されるようにするためです (組み込みモードの Flyway)。私が見たところ、これは空のデータベースでのみ機能します。この問題の簡単な解決策はありますか?

4

1 に答える 1

1

単一の PROD データベースの場合、flyway.initOnMigrate を使用できます

あなたの場合、Flyway をラップし、テーブルを調べて flyway.initialVersion=1 または flyway.initialVersion=2 で init を呼び出し、続いて移行を呼び出すことにより、これを手動で再作成する必要があります。

于 2012-12-14T12:37:21.623 に答える