Populating liquibase.properties values from Spring Boot application.properties

I am using liquibase-maven-plugin in a Spring Boot & maven project. I feel it will be more intuitive for developers to have functions they can run without starting an application.

The application.properties values of the project are retrieved from a config server. These values include the username, password and url for the connection to the db. I am looking to do something like:

in application.properties:

spring.datasource.url=${server.datasource.url}
spring.datasource.username=${server.datasource.username}
spring.datasource.password=${server.datasource.password}
spring.datasource.driver-class-name=${server.datasource.driver-class-name}
spring.liquibase.change-log=classpath:db/db-master-changelog.xml

and in liquibase.properties:

changeLogFile:db/db-master-changelog.xml
url:${spring.datasource.url}
username:${spring.datasource.username}
password:${spring.datasource.password}
driver:${spring.datasource.driver-class-name}

But obviously its not how it works. I was wondering if there is a way to achieve something like this?

An alternative would be to run the commands with the values as arguments (-Dliquibase.url=…) but that is kinda tedious and verbose.

1 Like

Hi there @eusean.woon! This is a great suggestion. We don’t currently offer this functionality, but you can submit it as a feature request on our idea board - https://ideas.liquibase.com

1 Like

@tabbyfoo is it possible to externalize the changets to spring cloud config server?
I have a micro service for liquibase, i do not wan to deploy my war everytimt i have a changeset. is it possible for it to pick changeset from some other place and just restart?