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

如何在Quarkus中使用Liquibase Maven插件基于实体生成Diff Changelog?

在Quarkus中用Liquibase基于实体生成Diff Changelog的可行方案

完全不需要手动编写changelog,这个需求在Quarkus中可以实现,核心是通过Liquibase的Hibernate集成解析实体类,替代Spring风格的referenceUrl配置,具体步骤如下:

  • 补全依赖
    在Maven的Liquibase插件配置中,添加liquibase-hibernate5(或对应Hibernate版本的集成包)依赖,确保插件能解析JPA实体:

    <build>
      <plugins>
        <plugin>
          <groupId>org.liquibase</groupId>
          <artifactId>liquibase-maven-plugin</artifactId>
          <version>你的Liquibase版本</version>
          <dependencies>
            <dependency>
              <groupId>org.liquibase.ext</groupId>
              <artifactId>liquibase-hibernate5</artifactId>
              <version>对应兼容版本</version>
            </dependency>
            <dependency>
              <groupId>io.quarkus</groupId>
              <artifactId>quarkus-hibernate-orm</artifactId>
              <version>你的Quarkus版本</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </build>
    
  • 配置liquibase.properties
    将referenceUrl设置为Hibernate EJB3格式,指向你的实体包,示例:

    changeLogFile=src/main/resources/db/changelog/db.changelog-master.xml
    url=jdbc:postgresql://localhost:5432/your-db
    username=db-user
    password=db-pass
    referenceUrl=hibernate:ejb3:com.your.project.entity?dialect=org.hibernate.dialect.PostgreSQLDialect
    referenceDriver=liquibase.ext.hibernate.database.connection.HibernateDriver
    

    把com.your.project.entity替换为你实际的实体类所在包路径,dialect根据数据库类型调整。

  • 生成Diff Changelog
    直接运行Maven命令即可生成差异changelog:

    mvn liquibase:diff
    

注意事项:

  • 确保实体类上的JPA注解(如@Entity、@Column等)配置正确,Quarkus的Hibernate ORM能正常识别这些实体。
  • 保持Liquibase版本和liquibase-hibernate版本的兼容性,避免依赖冲突。

内容的提问来源于stack exchange,提问作者Dana Amiri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:57:23