Ticketfly/play-liquibase

liquibase resolve wrong file lication for releative rescource

Opened this issue · 2 comments

conf
    liquibase
        changelog.xml
        dicts
            dict.xml
            dict.csv

changelog.xml is:

<includeAll path="./dicts" relativeToChangelogFile="true" />

When I trying to run applcation I have an exception:

liquibase.exception.ChangeLogParseException: file:/conf/liquibase/dicts/dict.xml does not exist

In FileSystemResourceAccessor chengelog.xml opened from path:

/home/myuser/git/myapp/conf/liquibase/changelog.xml

but relative resource path resolve as

/home/myuser/git/myapp/file:/conf/liquibase/dicts/dict.xml

file: in the middle of the path broke the correct path

upd: It is working correctly if you using two leading dots in the path

<includeAll path="../dicts" relativeToChangelogFile="true" />

but in documentation sample you are using one dot

 <includeAll path="./schema" relativeToChangelogFile="true"/>

and it is confused.

maybe better choices is to fix doc?

@theSemenov, can you try setting this in configuration ?

liquibase.changelog = "classpath:liquibase/changelog.xml"

and leave ./dicts