是否可以从liquibase脚本生成实体类和创建表



我有数据库变更日志文件。现在我也需要生成实体类和表。我将intellij与JPA好友插件一起使用。我也检查了一些类似逆向工程的东西,但没有成功。我用弹簧靴搭配postgres和liquibase。我刚刚添加了liquibasexml文件。我已经在application.yml文件中声明了所有数据库配置,但当我启动服务器时,没有任何脚本执行。我不确定我错过了什么

pom条目:

<!--liquibase-->
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>${liquibase.version}</version>
</dependency>

application-env.yml

datasource:
platform: postgres
url: jdbc:postgresql://localhost:5432/localdb
username: postgres
password: postgres
driver-class-name: org.postgresql.Driver

application.yml

liquibase:
change-log: classpath:db/changelog/changelog-master.xml

我已经将xml文件放在这些路径中。在服务器启动期间,我没有得到任何错误,liquibasexml文件也不会被执行。在此处输入代码

Liquibase通常不会对实体文件执行任何操作。这一切都是关于将变更日志文件中的变更集与数据库的databasechangelog表中存储的内容进行比较,并运行任何尚未运行的数据库更改。

Liquibase hibernate扩展允许您从实体元数据中生成变更集,但这是一个单独的过程:

  1. 修改实体类
  2. 运行liquibase差异更改日志
  3. 确保添加的变更集与您期望的一致,并根据需要进行修改

换一种方式(从数据库结构到实体对象(需要类似JPABuddy的东西,更像:

  1. 添加新的变更设置您的变更日志文件
  2. 运行liquibase更新
  3. 使用JPABuddy从新的数据库结构中更新实体对象

任何一种方法都可以工作,但您需要从一侧或另一侧生成。

但是:看起来问题的根源是db/changelog/changelog-master.xml中的变更集没有运行?

添加您所拥有的依赖项应该是在启动时使用spring boot启用Liquibase更新所需的全部内容。

  • 启动时的日志中有任何错误吗?也许它运行liquibase失败了,但还是继续引导
  • 您是否在db/changelog/changelog-master.xml中使用includeAll?如果您指向的目录不存在或输入错误,默认情况下liquibase将继续
  • dependencyManagement部分中的<dependency>是否不是依赖项

最新更新