У нас есть работающее приложение Spring Boot (2.1.3).Для локальной разработки мы используем
jpa:
hibernate:
ddl-auto: create-drop
Теперь нам нужно сгенерировать файл ddl для наших db-guys (предпочтительно во время сборки).Я попробовал установить следующие дополнительные свойства:
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();
}
}
Я где-то читал, чтоddl должен быть сгенерирован во время создания EntityManager
?!Ссылочный classpath:/testproperties/ddlgenerate.yml
содержит только
spring:
jpa:
properties:
javax:
persistence:
schema-generation:
create-source: metadata
action: create
create-target: create.sql
Журнал указывает, что свойства загружены.Тест зеленый, но все еще не файл ddl.
Итак, как получить файл ddl, сгенерированный (предпочтительно во время сборки)?