Liquibase v4.0.0 createProcedure path relativeToChangelogFile

Hi. I want ot migrate our liquibase XML from version 3 to 4. But I have a problem with the relative paths inside the tags 'createProcedures?. Currently, I have this changeSet:

<changeSet author="somebody" id="id_X" runOnChange="true">
		<createProcedure path="functions/fn_function_Y_oracle.sql"
			relativeToChangelogFile="true" encoding="UTF-8" dbms="oracle" />

The only way I have found to work is setting the parameter relativeToChangelogFile to “false” and adding the absolute path of the functions to the parameter classpath in the properties file.

Is there another way to migrate it?

Thanks in advace.

Hi @evamgarciap,

I’m not sure what sort of environment you’re trying to run liquibase from, but I had a similar issue with upgrading to liquibase 4 when I was running it in my dev environment and I managed to resolve it by simply ensuring that I click the Build button in my IDE (intellij) before running liquibase. This forces the built files to be updated whenever I make changes to resource files that liquibase uses, so that the latest version of the files are available.

We never had to do this on the older version of liquibase that we were using, so it seems that there’s been a change to the way that liquibase accesses resource files (things like .sql files etc). I haven’t managed to find exact details of how liquibase accessed resource files in older versions and how they are now accessed in 4.0.0, but hopefully this will help you.

If you want more details of my issue please have a look at my post here:

There is also this post, which is what helped me to figure out how to resolve my issue:

1 Like