【发布时间】:2014-07-10 12:59:57
【问题描述】:
我有这个应用程序,它使用“默认”配置文件连接到 PostgreSQL 数据库并使用 Flyway 进行迁移。
我想创建另一个名为“devEmbeddedCreate”的配置文件,我需要在其中使用嵌入式数据库服务器 (h2),在 application.properties 文件中使用 spring.jpa.hibernate.ddl-auto=create-drop 创建数据库并执行一个名为“data.sql”的不同脚本初始化一些表。
如果我使用“data.sql”文件名保留脚本,则每次应用程序启动时都会执行它。这是我不想发生的事情,我需要它只在某个配置文件中执行。
我尝试过的事情:
文档中提到可以有一个
schema-${platform}.sql文件,您可以在配置中使用spring.datasource.platform定义平台。它不适用于data-${platform}.sql文件的问题。 (here)创建了一个
EmbeddedDatabaseBuilder。问题是当我使用它时,它不会自动创建数据库并且只应用指定的脚本。找不到像spring.jpa.hibernate.ddl-auto=create-drop那样自动创建数据库的方法。 (here 和here)-
寻找一种将 XML 配置转换为基于 Java 的配置的方法,找到了一种创建数据库的方法。经过大量调整和更改以在内存中工作后,它看起来很有希望,但无法找出数据库在启动时关闭(并删除其所有结构)的原因(here)
李>
必须有一种更简单的方式来说“嘿,春天……当我的个人资料是 devEmbeddedCreate 时,在启动这个 data-devEmbeddedCreate.sql 脚本上运行,对吧?
【问题讨论】:
标签: java spring hibernate jpa spring-boot