【发布时间】:2019-12-02 10:31:23
【问题描述】:
我们有一个 Java Spring Boot 应用程序,使用 hibernate 和 PostgreSQL 数据库,并希望使用 flyway 进行版本控制。我们已经弄清楚了如何使用 flyway 本身并配置 hibernate 来创建包含数据库设置的 sql 文件。我们还没有弄清楚,如何让 hibernate 创建最小的 sql 文件来描述新旧模式之间的差异,这些文件将用作迁移脚本。除此之外,我们还没有弄清楚是否有办法使整个迁移过程自动化。
我们通读了大量文档和 stackoverflow 问题。他们都没有完全解释如何设置我们请求的行为。 This 问题最接近我们想要实现的目标,但解释说使用 flyway + hibernate 无法完成这种行为。尽管这个问题已经很老了(3 年),但我们希望它现在可以工作?
我们当前关于休眠的 spring 配置如下:
spring:
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQL95Dialect
hbm2ddl:
delimiter: ;
javax:
persistence:
schema-generation:
create-source: metadata
create-database-schemas: true
scripts:
action: create
create-target: src/main/resources/ddl_hibernate_creation.sql
这会产生一个模式创建 sql 就好了。虽然在升级架构时这还不够。
如前所述,我们希望找到一种至少半自动化整个迁移过程的方法(hibernate 至少应该创建一个可以手动应用于生产/开发的适当“diff”文件)。
【问题讨论】:
标签: database spring hibernate flyway