当我将任务放入 gradle 文件时,不会发生 Liquibase 数据库迁移

Liquibase db migration not happen when I put the task in gradle file

我为 liquibase 数据库迁移添加了一个 gradle 任务,如下所示

buildscript {
    repositories {
        
        mavenCentral()
    }
    dependencies {
        classpath 'org.liquibase:liquibase-core:4.4.3'
        classpath "org.liquibase:liquibase-gradle-plugin:2.0.4"
        classpath 'mysql:mysql-connector-java:5.1.13'
    }
}


plugins {
    id 'java'
    id 'org.liquibase.gradle' version '2.0.4'
}

task dbmigrate {
    doLast {
        println "executing dev"
       
            liquibase {
                activities {
                    schema1 {
                        changeLogFile "$projectDir/src/main/resources/db/migrations.xml"
                        url 'jdbc:mysql://localhost:3306/bmw?zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8&serverTimezone=UTC'
                        username 'root'
                        password 'root'
                        driver 'com.mysql.jdbc.Driver'
                    }
                    schema2 {
                        changeLogFile '$projectDir/src/main/resources/db/migrations.xml'
                        url 'jdbc:mysql://localhost:3306/vw?zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8&serverTimezone=UTC'
                        username 'root'
                        password 'root'
                        driver 'com.mysql.jdbc.Driver'
                    }
                }
                runList = 'schema1, schema2'
            }
        }
    }

build.dependsOn dbmigrate

当我运行 gradlew buildgradlew task dbmigrate 时,打印成功并显示“执行开发”字样。但是,当我检查数据库时,应用了 table 架构更改的 none。

有什么想法吗?谢谢。

您的 build.gradle 中似乎缺少一些内容。我尝试执行命令 ./gradlew task dbmigrate update,因此使用额外的 update 命令。这给了我一些错误,例如缺少 Liquibase 作为运行时依赖项。

我将它添加到您的构建文件中,然后当我 运行 ./gradlew task dbmigrate update:

时它对我有用
repositories {
    mavenCentral()
}

dependencies {
        liquibaseRuntime("org.liquibase:liquibase-core:4.4.3")
        liquibaseRuntime("mysql:mysql-connector-java:5.1.13")
}