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

Spring Boot应用启动时Liquibase未自动执行问题排查

Liquibase 不随Spring Boot启动的修复方案

按以下顺序排查修复即可:

  • 修复changelog文件存放路径错误
    你配置的changelog读取路径为classpath:db/changelog/db.changelog-root.yaml,但当前文件存放在src/db/changelog/目录下。Gradle编译时仅会将src/main/resources目录下的文件加入classpath,根目录src下的文件不会被识别为资源,启动时Liquibase自动配置类找不到changelog文件时,默认不会抛出错误,会直接跳过初始化流程,因此日志中无任何相关记录。
    修复操作:将src/db/changelog/目录整体移动到src/main/resources/下,保证文件最终路径为src/main/resources/db/changelog/db.changelog-root.yaml。
  • 移除Liquibase的手动版本声明
    你在依赖中手动指定了liquibase-core:4.12.0,Spring Boot 3.0.x版本有官方绑定的适配Liquibase版本,手动引入不匹配的版本会导致Liquibase自动配置的条件校验失败,不会触发初始化逻辑。
    修复操作:删除liquibase-core依赖的version字段,交由Spring Boot依赖管理插件自动拉取适配版本,修改后的依赖项为:
    implementation 'org.liquibase:liquibase-core'
    
  • 修复changelog文件的YAML语法错误
    当前changelog中first_name、last_name两个字段的配置缩进错误,nullable属性既没有放在constraints块下,缩进层级也和上级type属性不匹配,会导致后续Liquibase解析changelog失败。修正后的对应字段片段如下:
    - column:
        name: first_name
        type: varchar(50)
        constraints:
          nullable: false
    - column:
        name: last_name
        type: varchar(50)
        constraints:
          nullable: false
    
  • 校验配置(可选)
    若修复后仍不确定Liquibase是否加载,可在application.properties中添加如下配置开启debug日志,启动时会打印Liquibase自动配置的匹配状态和执行记录:
    logging.level.org.springframework.boot.autoconfigure.liquibase=debug
    

内容的提问来源于stack exchange,提问作者Santa Monica

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:18:19