java 如何在特定的Spring配置文件中禁用Flyway?

ohfgkhjo  于 2023-01-15  发布在  Java
关注(0)|答案(5)|浏览(490)

现在我有一个使用MsSQL服务器的spring-boot应用程序,我们使用flyway进行迁移。
我想为测试添加一个额外的概要文件。我想从实体类生成表,而不是使用flyway。
我试过smth在application.yaml中这样写

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

但飞行大赛还是要开始

cdmah0mi

cdmah0mi1#

仅供参考,对于来到这里寻找此属性的任何人,Sping Boot 2.0的属性名称已更改:
对于application.properties

spring.flyway.enabled=false

对于application.yml

spring:
    flyway:
        enabled: false

**更新:**要禁用特定配置文件中的flyway,您可以将该属性放在该配置文件的属性文件中。例如,如果您的配置文件名为“abc”,您可以将其放在application-abc.properties中。请查看Spring关于特定于配置文件的属性的文档,以了解如何命名这些文件。通常,格式为application-{profileName}.properties

c9qzyr3d

c9qzyr3d2#

**不适用于Sping Boot 2.X!**正确答案是here

如果您需要Sping Boot 1.X的答案,请继续阅读。
spring-boot有一个属性可以在需要时禁用flyway flyway.enabled,默认情况下为true。
你可以有一个配置文件特定的配置,在你的情况下,它应该命名为application-test.yml。如果配置文件是活动的,这个配置可以禁用flyway。你只需要声明如下:

flyway:
  enabled: false

如果您在公共配置中指定测试配置文件,只需将其添加到根目录即可。

41ik7eoe

41ik7eoe3#

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

spring.flyway.enabled=false # Whether to enable flyway.
7rfyedvj

7rfyedvj4#

我有多个配置文件,例如

  1. application-integration.yml
  2. application.yml
    在应用程序. yml中
spring:
  profiles:
    active: ${ENVIRONMENT_NAME:local}
  flyway:
    enabled: true
    user: ${ORACLE_DB_USER:#{null}}
    password: ${ORACLE_DB_PASS:#{null}}
    locations: classpath:db/migration
    url: ${DB_URL:#{null}}
    driver-class-name: oracle.jdbc.OracleDriver
    #    skipExecutingMigrations: true
    tablespace: MY_TABLESPACE_NAME
    baselineOnMigrate: true
    schemas: MY_SCHEMA_NAME

在应用程序集成. yml中

spring:
  flyway:
    enabled: false

当我运行它的时候,它没有禁用flyway迁移。我使用的是SpringBoot2.3.4

aij0ehis

aij0ehis5#

以下是application.yaml的示例,它定义了2个配置文件:

  1. enable_flyway_profile-启用飞行路线
  2. disable_flyway_profile-禁用飞行路线
spring:
  profiles:
    active: "enable_flyway_profile"
  flyway:
    enable: true
  ....

---

spring:
  profiles:
    active: "disable_flyway_profile"
  flyway:
    enable: false
  ....

相关问题