SpringBoot 的 JPA Buddy 替代方案

问题描述 投票:0回答:1

我正在使用 SpringBoot 开发一个 REST API。我使用 Spring Data JPA 和 Flyway 来处理迁移。我正在寻找一种方法来自动生成数据源迁移的 SQL 脚本。有点像 php symfony 框架提供的 ORM 原则。当我更新 JPA 实体时,我希望能够自动生成与代码中的实体和数据库当前状态之间的更改相对应的 SQL。

到目前为止,我一直在使用 Intellij IDEA 的“JPA BUDDY”插件,该插件在其高级模式下提供了此功能。不过最近这个功能只有 Intellij IDEA Ultimate 才有,而且许可证对我来说太贵了。

到目前为止,我已经尝试寻找其他替代方案,但由于 JPA Buddy 不可用是全新的,所以我还没有找到。你有什么建议吗?

spring spring-boot spring-data-jpa jpa-buddy sqlmigrations
1个回答
0
投票

这是我想出的解决方案。将其放入您的 application.properties 文件中:

spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
spring.jpa.properties.javax.persistence.schema-generation.scripts.action=update
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=db-migration.sql
spring.jpa.properties.javax.persistence.schema-generation.database.action=none
spring.jpa.hibernate.ddl-auto=none
spring.jpa.generate-ddl=true

并运行程序。它将生成一个 SQL 数据库迁移脚本,然后您可以根据需要使用该脚本(Flyway、Liquibase...)。 此属性设置为“none”,因此数据库不会立即更新,相反,您只需生成数据库迁移脚本。

spring.jpa.properties.javax.persistence.schema-generation.database.action=none
spring.jpa.hibernate.ddl-auto=none

请记住,脚本生成可能并不完美,也不完全符合您的要求,因此您应该每次检查它,如果缺少某些内容,请手动添加 SQL 代码。

© www.soinside.com 2019 - 2024. All rights reserved.