我们有一个正在运行的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
Log表示已加载属性。测试为绿色,但仍然没有ddl文件。
那么如何生成ddl文件(在构建过程中最好)?
答案 0 :(得分:0)
问题是@TestPropertySource
不支持yaml文件作为源。 yaml转换为属性文件后,一切都会正常工作。