schema.sql + DDL自动生成?

时间:2019-04-17 14:48:10

标签: hibernate spring-boot jpa

是否可以使用自定义sql创建与ddl自动生成共存的模式?我可以创建一个schema.sql,它可以正常运行,但是它优先于ddl自动生成,并且可以防止任何实体被自动生成。我想用schema.sql创建我的视图,但是我的表是自动生成的。我可以在data.sql中创建视图,这是一种解决方法,但是从语义上讲,在那里创建视图没有意义。

1 个答案:

答案 0 :(得分:1)

根据文档,您不能同时使用自动生成和schema.sql:

  

在基于JPA的应用程序中,您可以选择让Hibernate创建架构或使用schema.sql,但您不能两者都做。如果使用schema.sql,请确保禁用spring.jpa.hibernate.ddl-auto。

因此,您可以保留自动生成data.sql,然后配置Flyway创建视图。

对于Flyway配置,请在类路径中加载org.flywaydb:flyway-core:

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>5.2.4</version>
</dependency>

然后使用CREATE VIEW ...语句在/resources/db/migration/V1__createviews.sql上创建第一个迁移脚本。