我正在使用此设置来生成ddl文件:
spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=./ddl/schema.sql
生成是通过Maven验证阶段中的特定测试执行的:
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = Replace.NONE)
@TestPropertySource(locations = "/ddl.properties")
public class GenerateDDL {
@Autowired
private EntityManager em;
@Test
public void generateDDL() throws IOException {
em.close();
em.getEntityManagerFactory().close();
}
}
这工作正常,出现问题:生成器不会创建新文件,而只会附加所有内容。
有没有一种方法或设置可以让Generator始终创建新文件或清理旧文件?
在测试中删除它会在生成后将其删除。我们还需要将文件发布到git上,这样它就不会在target
中生成。
更新 在Hibernate中似乎至少没有解决方案(直到Hibernate 6): https://hibernate.atlassian.net/browse/HHH-11817
在创建持久性上下文之前,是否有办法挂接到Spring上下文创建中?在那里,我可以删除文件。