Flyway-maven-plugin как читать настройки из весеннего загрузочного приложения.

1

В моем проекте 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&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;connectionCollation=utf8_unicode_ci&amp;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. Или, может быть, есть другой способ?

  • 0
    Почему вы хотите использовать плагин? Spring Boot позаботится о том, чтобы выполнить пролет для вас, нет необходимости делать это в вашем файле maven.
Теги:
spring-boot
database-migration
flyway

3 ответа

2

Я понимаю, что если вы используете 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 с вашим приложением.

  • 0
    Невозможно запустить «info, validate, repair» и другие функции, не использующие CLI или плагин maven. Также я не использую application.properties. У меня есть application.yml.
  • 0
    Вы правы, если только вы не измените конфигурацию Spring Boot. Думая о рабочем процессе для init существующей БД. CLI Flyway был бы великолепен. Тогда пусть Spring Boot справится с миграцией.
Показать ещё 3 комментария
1

Чтобы читать *.yml свойства из pom, вы должны использовать https://github.com/aadnk/yaml-properties-plugin

0

У меня есть следующее в моем 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню