Spring Boot中能否搭配使用liquibase.properties?未暴露配置如何设置?
Spring Boot中设置Liquibase未暴露配置的解决方案
是的,Spring Boot集成Liquibase时默认不会自动加载liquibase.properties文件——因为Spring Boot是通过SpringLiquibase Bean来管理Liquibase实例的,它并不会读取标准的Liquibase属性文件。
对于Spring未暴露的Liquibase配置,你有几种可行的设置方式:
系统属性方式
可以通过代码设置系统属性:System.setProperty("liquibase.preserveSchemaCase", "true");或者在应用启动时通过JVM参数传递:
-Dliquibase.preserveSchemaCase=true自定义Liquibase Bean
更优雅的方式是创建自定义配置类,手动配置Liquibase参数:import liquibase.integration.spring.SpringLiquibase; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class LiquibaseConfig { @Bean public SpringLiquibase liquibase(DataSource dataSource) { SpringLiquibase liquibase = new SpringLiquibase(); liquibase.setDataSource(dataSource); liquibase.setChangeLog("classpath:db/changelog/db.changelog-master.yaml"); // 配置preserveSchemaCase参数 liquibase.getLiquibaseProperties().setProperty("preserveSchemaCase", "true"); return liquibase; } }扩展属性备选方案
Spring Boot支持通过spring.liquibase.parameters.*传递自定义参数,但这类方式对核心配置的兼容性不如前两种,可作为备选尝试:spring: liquibase: parameters: preserveSchemaCase: true
内容的提问来源于stack exchange,提问作者oligofren
相关产品推荐
相关产品推荐

