Мой текущий проект Spring Boot настроен с Gradle и плагином Liquibase Gradle.
У нас есть несколько странная реализация миграции баз данных, начиная с задачи, которая запускает приложение Spring Boot, которое читает нашу сущность моделирует и записывает их в «текущую схему» в базе данных, а затем выполняет сравнение с реальной схемой для создания журналов изменений.
Я хочу настроить плагин таким образом, чтобы я мог создать IntelliJ IDEA запустить конфигурацию, которая передает учетные данные базы данных в задачу.
Из build.grade
:
task createCurrentSchema(type: BootRunTask) {
doFirst() {
main = 'com.application.util.migration.CreateCurrentSchemaApplication'
classpath = sourceSets.main.runtimeClasspath
}
}
liquibase {
activities {
main {
changeLogFile 'path/to/db.changelog-current.xml'
url 'db:protocol://host:post/actual_db_name'
username <get from args>
password <get from args>
referenceUrl 'db:protocol://host:port/current_schema_db_name'
referenceUsername <get from args>
referencePassword <get from args>
}
}
}
Я уже пробовал различные подходы:
- Передача учетных данных в качестве параметров виртуальной машины
-Dspring.datasource.password
-Dliquibase.password
-Dpassword
- Передать учетные данные в качестве аргументов
-Pspring.datasource.password
-Ppassword
-PliquibasePassword
- Загрузка данных из файла конфигурации
Нет эти подходы работают.
Я проверил существующие * 10 45 * вопросов , связанных с моей проблемой в топиках c плагина Liquibase Gradle.
Поскольку задача запускает приложение Spring Boot, я мог запустить его с подключил отладчик в IntelliJ IDEA и заметил, что no аргументы не передаются вообще, независимо от того, как я настраиваю конфигурацию запуска.
Пожалуйста, скажите мне, что я делаю неправильно.