3

フライウェイを試していますが、クラスパスとJARに関する理解に問題があります。

複数のMavenモジュールに複数のサービスがあるプロジェクトがあります。各サービスで、flywayを使用してスキーマを維持する必要があります。したがって、各サービスは独自のリソースディレクトリを持つMavenモジュールであり、SQLスクリプトを配置できます。これはJARの一部になります。これで、サービスを組み込みモードで実行できるようになりました。このモードでは、エンドユーザーアプリケーション(Tomcatなど)に複数のサービスJARが存在します。

サービスの初期化時に、各サービスのデータソースを使用してflywaymigrateを実行します。Java移行を使用する場合、Javaクラスをimplsと同じパッケージに保持し、場所で区切ることができますが、SQL移行を使用する場合は、次のようになります。

src/main/resources/db/migration/V1_1__Populate_table.sql

各モジュールで。今の質問:

  • flywayはjarからsqlスクリプトを実行できますか?
  • はいの場合、実行するjarを指定できますか?
4

1 に答える 1

7

JARがクラスパスの一部である場合、移行が取得されます。

あなたの場合、モジュールごとに1つのFlywayインスタンスを使用する必要があります。次に、このインスタンスはSQL移行用に独自の場所で構成されるため、関連するファイルのみが取得されます。

例:flyway.locations = db / migration / mymodule

また、SQL移行をそのモジュールのJavaクラスと同じパッケージに入れることを妨げるものは何もありません。

于 2013-01-06T09:46:27.440 に答える