複数の個々のプラグインからアプリケーションを作成し、いくつかのテーブルで構成されたユーザー選択可能なデータベースにアプリケーションデータを保存するRCPアプリケーションがあります。時間が経つにつれて、データベース形式が変わり、Flywayデータベースの移行を使用してこれらの変更を管理したいと考えています。Eclipseプラグインから構築されたRCPでFlywayを使用
1つの解決策は、各プラグインが独自の移行を実行することです(つまり各プラグインでFlyway.migrateを呼び出します)。ただし、データベース内のテーブルが複数のプラグインで共有されている場合、プラグイン間のマイグレーション・コールが問題となります。
より良い解決策は、単一のMigrate呼び出しを持つことですが、問題は、Javaの移行スクリプトのクラスパスをFlywayインスタンスに与える方法になります。特に、Eclipseプラグインクラスの遅延ロード必要な移行コードがまだロードされていない可能性があります。これは、APIがこれをサポートするため、SQLベースの移行スクリプトでは問題にはなりません。クラスパスベースの検索ではサポートされていません。
問題は、Flyway.migrate()が単一のプラグインから呼び出されたときに、マイグレーションスクリプトのすべてのクラスパスがフライウェイスキャナクラスによって検出可能になるようにする方法がありますか?
大幅理解任意の提案...
各Eclipseプラグインには、依存関係のみを含む独自の別のクラスパスがあります。あなたはクラスパスを使って他のプラグインで物事を見つけることはできません。 –