Hello,
I have generated a database changelog using Liquibase from an existing database (to which I added some tables), and to be able keep track of my changes only (and not the full database), I want to use custom names for the databasechangeloglock and databasechangelog tables. According to the doc and the LiquibaseProperties.java
spring.liquibase.database-change-log-lock-table
and spring.liquibase.database-change-log-table
are the properties to use. When I set those in the application.properties
, the application fails to start (even if use the default values), and shows the below message:
***************************
APPLICATION FAILED TO START
***************************
Description:
Binding to target [Bindable@3fde337b type = org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties, value = 'provided', annotations = array<Annotation>[@org.springframework.boot.context.properties.ConfigurationProperties(ignoreUnknownFields=false, ignoreInvalidFields=false, value=spring.liquibase, prefix=spring.liquibase)]] failed:
Property: spring.liquibase.database-change-log-lock-table
Value: mycustomnamelock
Origin: class path resource [application-dev.properties]:35:49
Reason: The elements [spring.liquibase.database-change-log-lock-table,spring.liquibase.database-change-log-table] were left unbound.
Property: spring.liquibase.database-change-log-table
Value: mycustomname
Origin: class path resource [application-dev.properties]:36:44
Reason: The elements [spring.liquibase.database-change-log-lock-table,spring.liquibase.database-change-log-table] were left unbound.
Action:
Update your application's configuration
Comment From: snicoll
@zak905 I am not able to reproduce the problem. Can you please share a sample we can run ourselves (a repo or a zip). Thank you.
Comment From: snicoll
Ah you are probably using Spring Boot 2.0.x
. Those properties have been added in Spring Boot 2.1 so you need to upgrade.
Comment From: drstrangelug
For anyone who, like me, found this at the top of their google results but IS using a later version of spring boot, the properties have been renamed.
You now need:
spring.liquibase.database-change-log-table spring.liquibase.database-change-log-lock-table
What I have been unable to find is any reason why somebody decided to rename these properties and break the examples found elsewhere.
Comment From: wilkinsona
@drstrangelug I can't see any difference between the two properties that you have listed and those in the title of this issue.
Comment From: drstrangelug
Ah, apologies.
I've found other guides that specify the properties as : liquibase.databaseChangeLogTableName liquibase.databaseChangeLogLockTableName
I'll correct there as well.