Я использую java, Spring, Hibernate и Envers среди других вещей. Для целей тестирования я использую базу данных h2, а для конфигурации теста я установил spring.jpa.hibernate.ddl-auto=create-drop
. Некоторые из моих сущностей проходят аудит (используя envers).
Теперь, когда я запускаю свои тесты, я получаю что-то вроде:
2020-04-24 12:05:30.109 DEBUG [org.hibernate.SQL] [Test worker]: alter table nmc.testtable_aud drop constraint FKcmwq41oxs0yus7mgufns1njbd
Hibernate: alter table nmc.testtable_aud drop constraint FKcmwq41oxs0yus7mgufns1njbd
2020-04-24 12:05:30.112 WARN [org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl] [Test worker]: GenerationTarget encountered exception accepting command : Error executing DDL "alter table nmc.testtable_aud drop constraint FKcmwq41oxs0yus7mgufns1njbd" via JDBC Statement
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "alter table nmc.testtable_aud drop constraint FKcmwq41oxs0yus7mgufns1njbd" via JDBC Statement
...
Caused by: org.h2.jdbc.JdbcSQLException: Table "testtable_aud" not found; SQL statement:
Когда я использую spring.jpa.hibernate.ddl-auto=update
, описанная ошибка не возникает , но это вызывает проблемы в дальнейшем, так что это не вариант для меня.
Пока тесты запускаются зеленым на моем локальном экземпляре разработчика, он не проходит на центральном тестовом компьютере. Кроме того, это действительно раздражает, так как я не хочу, чтобы он выдавал ошибку, когда в этом нет ничего плохого.
Мне кажется, что это действительно основная проблема c. Я уже некоторое время искал и пробовал разные вещи, но, похоже, не могу разрешить этот конфликт. Из того, что я прочитал, интеграция envers / hibernate работает хорошо, поэтому я не могу поверить, что это обычная вещь, которая заставляет меня думать, что я что-то настроил неправильно. Я просто ожидаю, что hiberate должен отбрасывать только те таблицы, которые уже существуют или, по крайней мере, выдают соответствующие sql.
. Любая помощь и / или указатель в правильном направлении будет принята с благодарностью.
Спасибо .