Я определяю архитектуру для нового сервиса, который будет использовать Spring Boot. Я ищу способ настроить развертывания Liquibase для выполнения только с определенным активным профилем. Я также хотел бы отключить все другие компоненты, если это возможно, чтобы избежать действий со стороны логики сервиса до завершения развертывания базы данных.
Я успешно запустил свой сервис и увидел, как выполняются мои ревизии. Я не уверен в каком-либо ином способе, кроме крайних манипуляций с профилями всех компонентов, чтобы сделать мой профиль Liquibase изолированным исполнением, избегая создания экземпляров компонентов в контексте приложения.
Вот моя конфигурация:
spring:
application:
name: liquibase-spring-postgres-example
liquibase:
enabled: false
---
spring:
profiles: dev
datasource:
username: ${service_user}
password: ${DATASOURCE_DB_PASS}
url: jdbc:postgresql://{db}:{port}/schema
liquibase:
url: jdbc:postgresql://{db}:{port}/schema
---
spring:
profiles: liquibase
datasource:
## provided to get spring boot to start up
url: jdbc:postgresql://{db}:{port}/schema
liquibase:
user: ${liquibase_user}
password: ${LIQUIBASE_DB_PASS}
contexts: release
enabled: true
Я попытался отключить такие вещи, как встроенный сервер Jetty, с помощью комментария, который нашел здесь :
spring:
...
main:
web-application-type: none
Существуют ли методы помимо определения экстремального профиля для всех bean-компонентов или ручного запуска Liquibase вне Spring Boot, чтобы сделать это возможным?