2016-12-15 18 views
3

YAMLで書かれた複数のspring-boot設定ファイルから同じ要素のリストを組み合わせることはできますか?複数のspring-boot YAMLファイルのリストを結合する

例:

postgres.ymlは私のPostgresのDBの情報が含まれています。また、私の移行スクリプトのフライウェイの場所が含まれています

--- 
flyway: 
    locations: 
    - flyway/migrations/postgres 

私のオラクルの移行と同じ:私はテストデータと私のアプリケーションを起動したい場合は

--- 
flyway: 
    locations: 
    - flyway/migrations/oracle 

は今、私は私を含めたいですtest_dataディレクトリとしても(これらのデータは、postgresのとOracleの両方のために働く):

--- 
flyway: 
    locations: 
    - flyway/test_data 

私は、アクティブなプロファイルpostgres,testdataでアプリケーションを実行するとロケーションエントリがテストデータファイルによって上書きされるため、移行はロードされません。

この設定では、テストデータの有無にかかわらず、各データベースを実行するための4つの設定ファイルを作成できますが、4つの異なるデータベースと3つのテストデータがある場合、

答えて

1

残念ながら、Spring docsに記載されているように、これは現時点では不可能です。事前にプロファイル名のセットを知っている場合は、プロファイル名の前に別々のリストを作成し、Beanに最終リストにマージするコードを入れておくことで回避できます。そのコードはすべての既知のプロファイル名接頭辞を繰り返し処理し、プロファイルがアクティブでない場合、そのリストは空になります。

あなたのフライウェイの場合のように、あなたがこの豆を所有していないと、残念ながら、これは難しいようです。しかしそれはまだ可能かもしれません。

関連する問題