【发布时间】:2019-07-23 14:15:49
【问题描述】:
我们有一个工作的 Spring Boot (2.1.3) 应用程序。对于本地开发,我们使用
jpa:
hibernate:
ddl-auto: create-drop
现在我们需要为我们的 db-guys 生成一个 ddl 文件(最好在构建期间)。我将尝试设置这些附加属性:
javax:
persistence:
schema-generation:
create-source: metadata
action: create
create-target: create.sql
有了这些设置(ddl-auto 更改为 none),我启动了我的应用程序。虽然它开始正常,但没有找到“create.ddl”。
因为我希望在构建期间生成 ddl 文件,所以我添加了一个测试:
@RunWith(SpringRunner.class)
@DataJpaTest
@TestPropertySource(locations = "classpath:/testproperties/ddlgenerate.yml")
@AutoConfigureTestDatabase(replace = Replace.NONE)
public class GenerateDDL {
@Autowired
private EntityManager em;
@Test
public void generateDDL(){
em.close();
em.getEntityManagerFactory().close();
}
}
我在某处读到应该在 EntityManager 的实例化期间生成 ddl?!
引用的classpath:/testproperties/ddlgenerate.yml 只包含
spring:
jpa:
properties:
javax:
persistence:
schema-generation:
create-source: metadata
action: create
create-target: create.sql
日志表明属性已加载。测试是绿色的,但仍然没有 ddl 文件。
那么如何获取生成的 ddl 文件(最好在构建期间)?
【问题讨论】:
标签: jpa spring-data-jpa ddl