繁体   English   中英

在不同的模块中添加一个 sql 文件到 liquibase 中的变更集

[英]add a sql file in different module to changeset in liquibase

我的项目结构如下所述。

在此处输入图像描述

在 myApp (gradle) 中,我使用 liquibase 来管理架构更改。 所以我想要的是从我的变更日志中的“数据库”模块中运行 sqlFiles(mySqlFile1.sql、mySqlFile2.sql 和 mySqlFile3.sql)作为变更集。

我知道如何使用 sqlFile 标签在同一目录中运行 sql 文件。 但由于这些文件位于单独的模块中,我需要一些帮助。

我能够在 gradle 任务的帮助下做到这一点。 我试图找到一种使用 liquibase 实现此目的的方法,但对我来说我找不到任何方法。

所以我所做的是我在我的build.gradle文件中添加了一个 gradle 任务,以从数据库 forler 复制 sql 文件并粘贴到我的资源文件夹中,如下所示。

task myCustomTask() {

    copy {
        from "${rootProject.projectDir}/database/migration/mySqlFile1.sql"
        into '/src/main/resources/db/'
    }
        copy {
        from "${rootProject.projectDir}/database/migration/mySqlFile2.sql"
        into '/src/main/resources/db/'
    }
    copy {
        from "${rootProject.projectDir}/database/migration/mySqlFile3.sql"
        into '/src/main/resources/db/'
    }

}

build.dependsOn myCustomTask

所以我上面的复制任务发生在应用程序构建之前。 这意味着当 liquibase 运行更新日志时,这些 sql 文件在资源文件夹中可用。

所以我所做的是在添加了这个 gradle 复制任务之后,我添加了一个单独的变更集来运行资源文件夹中的 sql 文件。

这就是我能够解决我的问题的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM