如何禁用在某一弹簧型材飞行路线?

现在我有一个弹簧启动应用程序,它使用 MsSQL 服务器。

我想为测试添加一个额外的配置文件。我希望从实体类生成表,而不是使用 Flyway。

我在应用程序中试着这样写

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

但是飞行路线还是开始了

73325 次浏览

不适用于 Spring Boot 2.X! 正确答案是 给你

如果您需要 Spring Boot 1.X 的答案,请继续阅读。

有一个属性可用于弹簧启动禁用飞行路径,如果它是必要的 flyway.enabled,这是默认为真。

您可以有一个配置文件特定的配置,在您的情况下,它应该被命名为 application-test.yml。如果配置文件处于活动状态,此配置可以禁用飞行路径。你只需要声明如下:

flyway:
enabled: false

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

顺便说一句,如果有人来这里找这个 Spring Boot 2.0的属性名已更改:

application.properties格式:

spring.flyway.enabled=false

application.yml格式:

spring:
flyway:
enabled: false

更新: 要禁用特定配置文件中的 Flyway,您可以将该属性放入特定于该配置文件的属性文件中。例如,如果您的配置文件被称为“ abc”,那么您可以将它放在 application-abc.properties中。查看 Spring 关于特定于 Profile 的属性的文档以获得关于如何命名文件的更清晰的信息。一般来说,格式是 application-{profileName}.properties

JIC 当前春季启动2.x 的官方文档: 数据迁移属性 并查看标记 # 飞翔,您将发现许多可以帮助您的属性。

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

这里是 application.yaml的例子,它定义了两个配置文件:
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
....

我有多个配置文件,例如。

  1. Application-Integration.yml 应用程序集成
  2. 应用

在应用中

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

在应用程序集成中

spring:
flyway:
enabled: false

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