如何在某些弹簧剖面中禁用飞路?

gst*_*low 43 java spring flyway spring-profiles spring-boot

现在我有使用ms sql server的spring-boot应用程序.我们使用flyway fr迁移.

我想为测试添加额外的配置文件.我想从实体类生成表.并且不要使用飞路.

我试过smth在application.yaml中这样写

spring:
  profiles: test
  jpa:
      generate-ddl: true
      hibernate:
  datasource:
    url: jdbc:h2:mem:test_db;MODE=MSSQLServer
    username: sa
    password:
Run Code Online (Sandbox Code Playgroud)

但无论如何,flyway开始了

Tod*_*odd 97

仅供参考,对于任何来这里寻找的人来说,Spring Boot 2.0的属性名称已经改变了:

对于application.properties格式:

spring.flyway.enabled=false
Run Code Online (Sandbox Code Playgroud)

对于application.yml格式:

spring:
    flyway:
        enabled: false
Run Code Online (Sandbox Code Playgroud)

更新:要在特定配置文件中禁用flyway,您可以将该属性放在特定于该配置文件的属性文件中.例如,如果您的个人资料名为"abc",则可以将其放入application-abc.properties.查看Spring关于特定于配置文件的属性的文档,以更清楚地了解如何命名文件.通常,格式是application-{profileName}.properties.


Sta*_*lav 50

这个答案适用于Spring Boot 1.X版本.如果您正在寻找Spring Boot 2.X的答案,您应该看到以下答案.

如果需要flyway.enabled,有一个属性可用于spring-boot以禁用flyway ,默认情况下为true.

您可以使用特定于配置文件的配置,在您的情况下应将其命名为application-test.yml.如果配置文件处于活动状态,此配置可以禁用flyway 你只需要声明如下:

flyway:
  enabled: false
Run Code Online (Sandbox Code Playgroud)

如果您在通用配置中指定测试配置文件,只需将其添加到其根目录.


Jon*_*ohx 5

JIC 当前 spring boot 2.x 的官方文档: 数据迁移属性并查看标记#FLYWAY,您会发现许多可以帮助您的属性。

spring.flyway.enabled=false # Whether to enable flyway.
Run Code Online (Sandbox Code Playgroud)