Eclipse ワークスペースの 2 つの異なるプロジェクトで Flyway の 2 つの異なるインスタンスを作成しました。
それらは異なるデータ ソース/2 差分データベースを指しており、別の src.main.resources.db.migration パッケージも持っています。各パッケージには、それぞれのデータベース用の異なる sql ファイルが含まれています。
アプリケーションを起動すると、Flyway は 1 つのプロジェクト (最初に初期化されたプロジェクト) からのみスクリプトを識別し、このプロジェクトのスクリプトを他の DB に対しても実行します。
Flyway が 2 つのデータベースを同時に更新することは可能ですか?
返信いただきありがとうございます。しかし、これを Java コードで実装する方法を説明していただけますか。例:現在、私は次の方法を使用しています...
Flyway flyway = new Flyway();
InitialContext ictx = new InitialContext();
DataSource dataSource = (DataSource) ictx.lookup("DS-name");
flyway.setDataSource(dataSource);
flyway.setLocations("main.resources.db.migration");//location under first project
flyway.migrate();
Flyway flywaygen = new Flyway;
InitialContext ictx = new InitialContext();
DataSource dataSource = (DataSource) ictx.lookup("DS-name");
flywaygen.setDataSource(dataSource);
flywaygen.setLocations("main.resources.emlogis.migration");//location under second project
flywaygen.migrate();
問題は、flywaygen も最初のプロジェクトの場所を検討していることです。したがって、最初の場所に 3 つの SQL スクリプトが追加され、2 番目の場所に 2 つのスクリプトが追加された場合、2 番目のフライウェイ インスタンスは移行 3 が完了したことを示します。そのため、flywaygen も main.resources.emlogis.migration ではなく main.resources.db.migration を指しています。