You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liquibase 4.21+版本不生成变更日志,DATABASECHANGELOG表为空求助

解决方案

问题根源在于Liquibase 4.21及以上版本对SpringLiquibase的行为做了变更:从4.21版本开始,afterPropertiesSet()仅完成配置初始化,不再自动触发数据库迁移操作,而你之前的代码依赖该方法执行变更日志,因此升级后Liquibase未执行任何操作,DATABASECHANGELOG表为空。

只需在代码中显式调用migrate()方法即可解决,修改后的核心代码如下:

final SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setResourceLoader(resourceLoader);
liquibase.setDataSource(tenantDataSource);
liquibase.setChangeLog(liquibaseProperties.getChangeLog());
liquibase.setContexts(liquibaseProperties.getContexts());
liquibase.afterPropertiesSet();
// 新增:显式触发数据库迁移
liquibase.migrate();

补充说明

  • 降级到4.20及以下版本正常,是因为旧版本中afterPropertiesSet()内部会自动调用migrate()逻辑,新版本将初始化与迁移操作拆分,需要手动触发迁移
  • 该调整完全适配你的多租户运行时创建数据库的场景,每个租户数据源会独立执行变更日志

内容的提问来源于stack exchange,提问作者Rameshwar Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 22:30:11