В моем проекте Spring Boot я хочу использовать flyway-maven-plugin. Мой пом:
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>3.1</version>
<configuration>
<url>jdbc:mysql://localhost:3306/my_database?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&connectionCollation=utf8_unicode_ci&characterSetResults=UTF-8</url>
<user>root</user>
<password>${spring.datasource.password}</password>
</configuration>
</plugin>
И вот мое приложение.yml
spring:
profiles.active: default
---
spring:
profiles: default
spring.datasource:
password: root
Как я понял, использовать mvn flyway:info
Мне нужен плагин, который будет читать мое приложение application.yml. Или, может быть, есть другой способ?
Я понимаю, что если вы используете Flyway с Spring Boot, вы не используете плагин flyway-maven.
EDIT: Использование Flyway CLI имеет место, когда вам нужно напрямую работать с БД, чтобы вносить изменения в таблицу схем Flyway. Примером может быть init
существующей БД или clean
тестового проекта.
Это текущие настройки, которые можно выполнить из коробки, установив свойства в application.properties
для Flyway.
# FLYWAY (FlywayProperties)
flyway.check-location=false # check that migration scripts location exists
flyway.locations=classpath:db/migration # locations of migrations scripts
flyway.schemas= # schemas to update
flyway.init-version= 1 # version to start migration
flyway.init-sqls= # SQL statements to execute to initialize a connection immediately after obtaining it
flyway.sql-migration-prefix=V
flyway.sql-migration-suffix=.sql
flyway.enabled=true
flyway.url= # JDBC url if you want Flyway to create its own DataSource
flyway.user= # JDBC username if you want Flyway to create its own DataSource
flyway.password= # JDBC password if you want Flyway to create its own DataSource
Версия YAML:
flyway:
check-location: false
locations: classpath:db/migration
....
Если вам нужна дополнительная настройка, вам может понадобиться написать @Bean
для дальнейшей настройки взаимодействия @Bean
с вашим приложением.
init
существующей БД. CLI Flyway был бы великолепен. Тогда пусть Spring Boot справится с миграцией.
Чтобы читать *.yml
свойства из pom, вы должны использовать https://github.com/aadnk/yaml-properties-plugin
У меня есть следующее в моем src/main/resources/application.properties
flyway.url=jdbc:sqlserver://localhost:1433
flyway.user=james_hetfield
flyway.password=MetaLLic@
spring.datasource.url=${flyway.url}
spring.datasource.user=${flyway.user}
spring.datasource.password=${flyway.password}
И затем я запускаю миграции из командной строки следующим образом
mvn -Dflyway.configFiles=src/main/resources/application.properties flyway:migrate