web-dev-qa-db-ja.com

特定のスプリングプロファイルでフライウェイを無効にする方法

これで、MsSQLサーバーを使用するスプリングブートアプリができました。そして、移行にはフライウェイを使用します。

テスト用の追加プロファイルを追加したい。フライウェイを使用する代わりに、エンティティクラスからテーブルを生成したい。

私はapplication.yamlでこのように書くことを試みました

spring:
  profiles: test
  jpa:
      generate-ddl: true
      hibernate:
  datasource:
    url: jdbc:h2:mem:test_db;MODE=MSSQLServer
    username: sa
    password:

とにかくフライウェイが始まる

37
gstackoverflow

この回答は、Spring Boot 1.Xバージョンで機能します。 Spring Boot 2.Xの回答を探している場合は、 回答の下 が表示されます。

flyway.enabledが必要な場合にflywayを無効にするスプリングブートのプロパティがあり、これはデフォルトでtrueです。

プロファイル固有の構成を使用できます。この場合、application-test.ymlという名前を付ける必要があります。この構成は、プロファイルがアクティブな場合にフライウェイを無効にすることができます。次のように宣言するだけです。

flyway:
  enabled: false

また、共通構成でテストプロファイルを指定する場合は、それをルートに追加するだけです。

48
Stanislav

参考までに、これを探してここに来る人は誰でも Spring Boot 2.0のプロパティ名が変更されました

application.properties形式の場合:

spring.flyway.enabled=false

application.yml形式の場合:

spring:
    flyway:
        enabled: false

更新:特定のプロファイルでフライウェイを無効にするには、そのプロファイルに固有のプロパティファイルにそのプロパティを配置します。たとえば、プロファイルの名前が「abc」の場合、application-abc.propertiesに配置できます。 Springのプロファイル固有のプロパティに関するドキュメント をチェックして、ファイルの命名方法をより明確にしてください。通常、形式はapplication-{profileName}.propertiesです。

82
Todd

JICの現在のスプリングブート2.xを使用した公式ドキュメント: 一般的なアプリケーションプロパティ およびタグの外観#FLYWAYあなたを助けることができる多くのプロパティを見つけます。

spring.flyway.enabled=false # Whether to enable flyway.
1
Jonathan Johx