Как отключить пролет в определенном профиле 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
  ....