Я использую эту настройку для создания файла 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();
}
}
Это работает нормально,с проблемой: генератор не создает новый файл, а просто добавляет его всегда.
Есть ли способ или настройка, позволяющая генератору всегда создавать новый файл или очищать старый?
Удаление его в тесте приведет к его удалению после генерации. Нам также нужно, чтобы файл был опубликован в git, поэтому он не сгенерирован в target
.
ОБНОВЛЕНИЕ Кажется, по крайней мере нет решения в Hibernate (до Hibernate 6): https://hibernate.atlassian.net/browse/HHH-11817
Есть ли способ подключиться к созданию контекста Spring - до создания контекста постоянства? Там я могу удалить файл.