【发布时间】:2022-08-11 03:39:39
【问题描述】:
我需要在两个不同的 shcemas 上运行两个不同的 flyway 迁移,每个都有自己的用户帐户。
根据 Flyway 文档,我只需为每个使用FlywayMigrateTask 的连接设置一个自定义任务。从使用默认(Groovy)gradle的官方文档中:
task migrateDatabase1(type: org.flywaydb.gradle.task.FlywayMigrateTask) {
url = \'jdbc:h2:mem:mydb1\'
user = \'myUsr1\'
password = \'mySecretPwd1\'
}
task migrateDatabase2(type: org.flywaydb.gradle.task.FlywayMigrateTask) {
url = \'jdbc:h2:mem:mydb2\'
user = \'myUsr2\'
password = \'mySecretPwd2\'
}
我尝试在 Kotlin gradle (kts) 中执行此操作,但我的项目无法解决对 FlywayMigrateTask 的引用,即使我的 External Libraties 中有它:
我如何注册任务:
tasks.register(
\"flywayTesting\",
type = org.flywaydb.gradle.task.FlywayMigrateTask::class.java) {
// Details hidden
}
我能够解析org.flywaydb.gradle.task 包,但不能解析任务文件夹中的FlywayMigrateTask 类。
我究竟做错了什么?
我的 gradle 设置的亮点:
plugins {
kotlin(\"jvm\") version \"1.6.0\"
id(\"org.flywaydb.flyway\") version \"8.5.1\"
}
repositories {
mavenCentral()
}
tasks.withType<Wrapper> {
gradleVersion = \"6.8.2\"
distributionType = Wrapper.DistributionType.BIN
}
dependencies {
implementation(\"org.flywaydb:flyway-core:8.5.1\")
implementation(\"org.flywaydb:flyway-gradle-plugin:8.5.0\")
}
kotlin {
sourceSets[\"main\"].apply {
kotlin.srcDir(\"src/main/kotlin\")
}
}
-
从命令行运行
./gradlew flywayTesting时会出现什么错误?除了 IntelliJ 之外,您是否看到任何错误?
标签: kotlin gradle database-migration flyway gradle-kotlin-dsl