在docker上运行时的SpringLiquibase错误

时间:2020-03-16 21:39:02

标签: spring docker liquibase

我正在使用最新的liquibase版本使用SpringLiquibase liquibase-core 3.8.7,然后我创建了一个bean

 @Bean
    public SpringLiquibase getLiquibase() {
        // Configure Liquibase

        SpringLiquibase liquibase = new SpringLiquibase();
        liquibase.setChangeLog("classpath:db_scripts/db.changelog-master.yaml");
        liquibase.setDataSource(dataSource);
        liquibase.setShouldRun(true);

        return liquibase;
    }

db.changelog-master.yaml位于资源下,看起来像这样

databaseChangeLog:
  - includeAll:
      path: db_changes/
      relativeToChangelogFile: true

当我在本地运行应用程序时,它运行良好,但是当我将其作为docker运行时,出现以下错误:

Caused by: liquibase.exception.ChangeLogParseException: Error parsing classpath:db_scripts/db.changelog-master.yaml
    at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:83)
    at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:217)
    at liquibase.Liquibase.update(Liquibase.java:190)
    at liquibase.Liquibase.update(Liquibase.java:179)
    at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:366)
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:314)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1855)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792)
    ... 22 common frames omitted
Caused by: liquibase.exception.SetupException: Could not find directory or directory was empty for includeAll 'db_changes/'
    at liquibase.changelog.DatabaseChangeLog.includeAll(DatabaseChangeLog.java:528)
    at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:395)
    at liquibase.changelog.DatabaseChangeLog.load(DatabaseChangeLog.java:305)
    at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:77)
    ... 29 common frames omitted
Caused by: liquibase.exception.SetupException: Could not find directory or directory was empty for includeAll 'db_changes/'
    at liquibase.changelog.DatabaseChangeLog.includeAll(DatabaseChangeLog.java:519)
    ... 32 common frames omitted

我知道有一个错误 https://liquibase.jira.com/browse/CORE-2863,但未提及docker。 所以我不确定是否相关。

有什么想法吗?

0 个答案:

没有答案