SpringBoot3+Hibernate6中Liquibase生成空变更日志,缺失什么配置?
解决liquibase-hibernate6生成空变更日志的配置调整
1. 修正Hibernate实体扫描路径
当前Liquibase配置的url参数中,实体扫描包为com.example,但你的Item实体实际在com.example.demo包下,导致Liquibase无法定位到实体类。需要修改url为正确的包路径,同时添加Spring Boot默认的命名策略(确保表名生成符合预期):
liquibase { activities.register("main") { this.arguments = mapOf( "changelogFile" to "src/main/resources/config/liquibase/changelog/0.1.0/000000_00000000_initial-changelog.xml", "url" to "hibernate:spring:com.example.demo?dialect=org.hibernate.dialect.PostgreSQLDialect&hibernate.physical_naming_strategy=org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy" ) } }
2. 移除冗余依赖
liquibase-gradle-plugin已通过Gradle插件声明,无需添加到implementation依赖中,删除以下行:
implementation("org.liquibase:liquibase-gradle-plugin:$liquibaseGradlePluginVersion")
3. 先编译项目再生成变更日志
Liquibase需要读取编译后的实体类字节码,执行生成命令前先完成项目编译:
./gradlew compileJava generateChangeLog
4. 确认LiquibaseRuntime依赖有效性
你的liquibaseRuntime依赖已包含Hibernate6、Spring Data JPA及项目编译输出,这部分配置无需修改。
完成以上调整后,重新执行generateChangeLog即可生成包含Item实体表结构的变更日志。
内容的提问来源于stack exchange,提问作者bobbyrne01
相关产品推荐
相关产品推荐

