现在我有使用ms sql server的spring-boot应用程序。我们使用flyway fr迁移。
我想为测试添加其他配置文件。我想从实体类生成表。并且不使用飞路。
我在application.yaml
中尝试使用smth这样写spring:
profiles: test
jpa:
generate-ddl: true
hibernate:
datasource:
url: jdbc:h2:mem:test_db;MODE=MSSQLServer
username: sa
password:
但是飞路无论如何都要开始
答案 0 :(得分:61)
仅供参考,对于任何来这里寻找此事的人,the property name has changed for Spring Boot 2.0:
application.properties
格式:
spring.flyway.enabled=false
application.yml
格式:
spring:
flyway:
enabled: false
更新:要在特定配置文件中禁用flyway,您可以将该属性放在特定于该配置文件的属性文件中。例如,如果您的个人资料被称为" abc",您可以将其放入application-abc.properties
。查看Spring's documentation on Profile-specific properties以更清楚地了解如何命名文件。通常,格式为application-{profileName}.properties
。
答案 1 :(得分:42)
这个答案适用于Spring Boot 1.X版本。如果您正在寻找 Spring Boot 2.X 的答案,您应该看到below answer。
如果需要flyway.enabled
,则有一个属性可用于spring-boot以禁用flyway。默认情况下为true。
您可以拥有特定于配置文件的配置,在您的情况下,它应该命名为application-test.yml
。如果配置文件处于活动状态,此配置可以禁用flyway你只需要声明如下:
flyway:
enabled: false
如果您在通用配置中指定测试配置文件,只需将其添加到其根目录。
答案 2 :(得分:0)
JIC当前版本的spring boot 2.x的官方文档: Common application properties并查看#FLYWAY 标签,您会发现许多可以帮助您的属性。
t1 = Thread(target=check_incoming_messages_to_client,
args=(incoming_chat_messages[length-1], uri_str, kill_threads_subscript))
答案 3 :(得分:0)
我有多个个人资料,例如
在 application.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
在 application-integration.yml 中
spring:
flyway:
enabled: false
当我运行它时,它不会禁用飞路迁移。我使用的是 SpringBoot2.3.4
答案 4 :(得分:-1)
此处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
....