将项目从Maven迁移到Gradle时,我遇到了以下问题。
我的文件结构如下:
changelog-master.xml包含changelog-v1-0.xml,然后其中应包含目录v1-0,并包含以下行:
<includeAll path="src/main/resources/liquibase/changelogs/v1-0/" errorIfMissingOrEmpty="true" />
。
这样很好。这:<includeAll path="/liquibase/changelogs/v1-0/" errorIfMissingOrEmpty="true" relativeToChangelogFile="true" />
没有。
我收到以下错误消息:
Cannot find base path 'src/main/resources/liquibase/changelogs/changelog-v1-0.xml'
在3.6.2版中使用liquibase。我还尝试了3.6.0、3.6.1和3.5.5版本。我正在使用gradle在4.9版中构建我的项目,并在2.0.1版中构建插件,还尝试了1.2.4和2.0.0。我尝试了所有可能的路径组合,无论是否设置了relativeToChangelogFile="true"
,到目前为止都没有任何效果。我需要相对于变更日志文件的路径。我还提到了jira,github和stackoverflow中的各种问题,到目前为止没有任何效果。
为什么这不起作用?
我想这个错误只能由liquibase社区解决,因为这似乎是liquibase本身的问题。
答案 0 :(得分:0)
我通过在build.gradle中的liquibase插件活动的定义中添加类路径设置来解决此错误
liquibase {
activities {
main {
classpath "$projectDir/src/main/resources/liquibase"
changeLogFile 'r1.0/r1.0-master.yaml'
driver 'com.mysql.cj.jdbc.Driver'
url 'jdbc:mysql://localhost:3306/dbName'
username 'root'
password 'password'
}
}}
然后,在主变更日志文件r1.0-master.yaml中,includeAll指向相对路径included
,其他我的变更日志文件将保存在该相对路径中。
databaseChangeLog:
- includeAll:
path: included
relativeToChangelogFile: true