メイン質問 - これは基本的なフライウェイの質問のように思えるかもしれませんが、私は研究中にこれを見逃しているかもしれません。フライウェイを使用してデータを移行しようとすると、サービス(スプリング構成)ですか?フライウェイDBマイグレーション - アプリケーションサービスへのアクセス方法(Spring設定済み)
追加の詳細 - - 以下のいくつかの詳細
- は、私たちは春のデータ・サービスなど(learnt from this SO question)を注入することはできません知っています。そして私は のデータアクセスポイントからこのことを理解しています。
- しかし、我々は(注射により)、他のアプリケーションサービスを利用することはできません いずれかフライウェイを使用している(私は例の検索 - しかし 運、およびいずれかのフライウェイのドキュメントに与えられていない詳細なし)
- 私たちが使用することはできません言ってみましょう任意のSpringサービス(そして、私は を回避する方法を見つける)、 application.properties/.ymlで宣言されたプロパティにアクセスできます(どちらも可能ではありません)。 私たちの要件の文脈で上記を置く
- 私たちはいくつかのテーブルに、我々はデータとそれらの列を移入したいリリースの一部として、新たなフィールドをいくつか追加しました。これにより、私たちは、以下のアルゴリズムを実行する必要があります。
- 最初のテーブルのデータを取得します。
- 各行のデータの一部を使用して、API コールでさらにデータを検索します。
- APIのURLは環境固有です(したがって、上記の3番目の点 )。
- APIから返されたデータを新しく追加された列に更新します。
- 次の表の手順を繰り返します。
P.S. - 私が知っているのは、同じテーブルの他の列に依存する列を追加することは3番目の法則などではありませんが、このポスト外の理由で必要です。
テックスタック -
- 春ブート1.3.xのJavaの移行私は以下のように試してみました
いくつかの例を使用して
My flyway m igrationクラスは以下の通りです。
public class R__MigrationYeah implements SpringJdbcMigration {
@Value("${mypath.subpath}") // this does not work !
private String someStringIwannaUse;
@Inject // this does not work either (even with Autowired or Const. injection)!
private MyService myService;
}
私はflyways MigrationResolverまたはConfigurationAwareなどを設定する方法の複雑な詳細を持っているいくつかの記事/ブログを見ている - それだけで多くの仕事である - 彼らが行う場合でも、(彼らはこの問題を解決するかどうかわかりませんクイック移行スクリプトを作成する - これが唯一の方法ですか?)
最後に - 私は、Springを介して既存のアプリケーションクラスを使用することができずにフライウェイJavaコードを記述する必要があるため、独立した移行プロジェクトを作成することと同じですDB接続を利用可能にする以外のフライウェイで追加された値) - これは当てはまりません。
これにはどんな助けがありますか?
**アップデート** - 最終的に回避策の解決策を使用して終了しました(上記の最後のセクションと@DanielKaferの下の回答)。これは、フライウェイからすぐに入手できないためです。 _P.S。以下の質問や回答が投票に失敗した理由を明確にしていない?私は何かを見逃していますか? –