Как отключить пролет в определенном профиле spring?
Теперь у меня есть приложение весенней загрузки, которое использует сервер MsSQL. И мы используем пролёт для миграций.
Я хочу добавить дополнительный профиль для тестов. Я хочу генерировать таблицы из классов сущностей вместо использования flyway.
Я пытался что-то написать в application.yaml
spring:
profiles: test
jpa:
generate-ddl: true
hibernate:
datasource:
url: jdbc:h2:mem:test_db;MODE=MSSQLServer
username: sa
password:
но пролет начинается в любом случае
Ответы
Ответ 1
Этот ответ работает с версией Spring Boot 1.X. Если вы ищете ответ для Spring Boot 2.X, вы должны увидеть ответ ниже.
flyway.enabled
-boot имеет свойство для отключения flyway, если ему нужен flyway.enabled
который по умолчанию имеет значение true.
У вас может быть конкретная конфигурация профиля, в вашем случае она должна называться application-test.yml
. Эта конфигурация может отключить пролетный путь, если профиль активен. Вы просто должны объявить это следующим образом:
flyway:
enabled: false
И если вы указываете тестовый профиль в общей конфигурации, просто добавьте его в корневой каталог.
Ответ 2
К вашему сведению, для тех, кто приходит сюда в поисках этого, имя свойства для Spring Boot 2.0 было изменено:
Для формата application.properties
:
spring.flyway.enabled=false
Для формата application.yml
:
spring:
flyway:
enabled: false
Обновление: чтобы отключить пролет в определенном профиле, вы можете поместить это свойство в файл свойств, относящийся к этому профилю. Например, если ваш профиль называется "abc", вы можете поместить его в application-abc.properties
. Ознакомьтесь с документацией Spring по свойствам профиля, чтобы узнать, как называть файлы. Обычно это формат application-{profileName}.properties
.
Ответ 3
JIC официальная документация с текущей весенней загрузкой 2.x: Общие свойства приложения и посмотрите на тег # FLYWAY, вы найдете много свойств, которые могут вам помочь.
spring.flyway.enabled=false # Whether to enable flyway.
Ответ 4
Вот пример 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
....