【问题标题】:Disable Flyway on Spring Boot 2在 Spring Boot 2 上禁用 Flyway
【发布时间】:2018-09-23 01:02:02
【问题描述】:

我一直在尝试为 Spring Boot 2 上的单元测试禁用 Flyway,但未能成功。

我从 Spring Boot 的文档中了解到,这样做的属性从 flyway.enabled 更改为 spring.flyway.enabled,并将其添加到我的测试应用程序配置文件中(如下所示)。

spring:
  datasource:
    url: jdbc:h2:mem:db
  jpa:
    hibernate:
      ddl-auto: create
  flyway:
    enabled: false

这个配置好像一点效果都没有,Flyway 自动配置依然被调用。

我还尝试为单元测试创​​建一个单独的自动配置类,我在其中添加了@EnableAutoConfiguration(exclude = FlywayAutoConfiguration.class),但这次尝试和上一次一样失败了。

【问题讨论】:

  • 似乎这应该适用于所有配置文件,您可能需要在 spring.profiles=test 下找到它,以便它仅在测试时禁用。
  • 当您尝试读取此属性的值时,例如@Value("${spring.flyway.enabled}") 是否在您的测试类中打印 false
  • @KarolDowbecki 奇怪的是,Spring 无法注入这个或我尝试检查的任何其他属性,所以现在我怀疑我可能错过了其他一些配置。谢谢,这个问题让我反过来想:)
  • @renke 属性解析应该是开箱即用的,你必须在测试自动配置中破坏了一些东西。你在用@SpringBootTest@RunWith(SpringRunner.class)吗?

标签: java spring-boot flyway


【解决方案1】:

这是因为您将 jpa.hibernate.ddl-auto 设置为 create。改为将其设置为 none。否则,flyway.enabled 无效。

【讨论】:

    【解决方案2】:

    添加

    spring.flyway.enabled=false
    

    application.properies

    【讨论】:

      【解决方案3】:

      我使用 spring-boot 2.0.3-RELEASE 并添加 JVM 选项-Dspring.flyway.enabled=false

      【讨论】:

        猜你喜欢
        • 2019-04-19
        • 1970-01-01
        • 2023-03-13
        • 2021-09-29
        • 2015-04-13
        • 2019-01-25
        • 2019-04-19
        • 2015-05-29
        • 2017-10-11
        相关资源
        最近更新 更多