【问题标题】:Running Flyway migrations with Jenkins and Gradle - Unable to resolve location classpath:db/migration使用 Jenkins 和 Gradle 运行 Flyway 迁移 - 无法解析位置类路径:db/migration
【发布时间】:2018-03-18 16:52:12
【问题描述】:

通过 jenkins 运行 flyway 时,我在控制台输出中收到以下错误:

Unable to resolve location classpath:db/migration

我的项目源码结构如下:

Project1
|--WEB-INF
   |--src
      |--java source
   |--flywaysrc
      |-- flyway source

我的 build.gradle 对 flyway 和 java 有单独的 sourceSet:

sourceSets {
    main {
        java {          
            srcDir 'WEB-INF/src'        
        }
    }
    flyway {
        java {
            srcDir 'WEB-INF/flywaysrc'
            output.classesDir='bin'         
        }
    }
}

它还包含一个flyway条目,其中locations数组设置如下:

flyway {  
    ...other configuration params...  
    ArrayList<String> locationsArray = new ArrayList<String>();  
    locationsArray.add("classpath:db/migration");  
    locationsArray.add("filesystem:/path/to/eclipse/Project1/WEB-INF/Release/old_release");
    locationsArray.add("filesystem:/path/to/eclipse/Project1/WEB-INF/flywaysrc");  
    locations=locationsArray  
    ...other configuration params...  
}

知道是什么原因造成的/您需要什么信息来提供更多有助于解决此问题的输入?

【问题讨论】:

    标签: java jenkins gradle flyway


    【解决方案1】:

    默认情况下,flyway 在类路径的 db/migrations 文件夹中查找迁移。如果此 db/migrations 存在并且它包含迁移 sqls flyway 将选择它。也可以使用属性 [locations]:(https://flywaydb.org/documentation/commandline/info)

    自定义迁移文件夹位置

    您确定 flywaysrc 文件夹中有 db/migrations 并且 db/migrations 包含迁移 sql 吗?

    【讨论】:

    • 是的,我确定。 Flyway 是通过 gradle 运行的,我在上面的问题中添加了一个配置的 sn-p ......奇怪的是我可以从 eclipse 运行 flyway 并毫无问题地更新数据库。当我通过 Jenkins 运行 flyway 任务时,它失败并出现上述错误。
    猜你喜欢
    • 2019-06-16
    • 2019-09-10
    • 2022-07-06
    • 2017-10-17
    • 2012-02-07
    • 2017-08-16
    • 2013-04-07
    • 2020-11-13
    • 2023-03-22
    相关资源
    最近更新 更多