У меня много интеграционных тестов, и я настроил ликибазу, чтобы база данных можно было инициализировать. Но каждый тестовый класс инициализирует новую инициализацию. В этом случае ошибки дублирования данных неизбежны. Я нашел несколько рекомендаций, чтобы избежать этого, но столкнулся с проблемой.
< /code>
[*] Master < /li>
< /ul>
< /code>
Я также написал класс конфигурации. < /p>
В пакете: < /p>
liquibase.ext
< /ul>
public class CleanUpDatabaseTestExecutionListener extends AbstractTestExecutionListener {
@Autowired
SpringLiquibase liquibase;
@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE;
}
@Override
public void afterTestClass(TestContext testContext) throws Exception {
testContext.getApplicationContext()
.getAutowireCapableBeanFactory()
.autowireBean(this);
liquibase.afterPropertiesSet();
}
}
< /code>
context < /li>
< /ul>
@Slf4j
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@TestExecutionListeners(listeners = {
DependencyInjectionTestExecutionListener.class,
TransactionalTestExecutionListener.class,
CleanUpDatabaseTestExecutionListener.class,
})
public abstract class AbstractTestcontainers extends ContainerConfig {
< /code>
Я получаю ошибку: liquibase.exception.migrationFailedException:
миграция не удалась для изменения изменения
db/changelog/test/liquibase initdb.xml:1:1:n:
ancome: ridibase.exexception.databaSexe.DatabaSexexexexexexebaSex: Уже существует [Неудачный SQL: (0)-
-Postgresql Dampase Dampase < /h2>
< /blockquote>
spring.liquibase.drop-first=true-это не работает.>
Подробнее здесь: https://stackoverflow.com/questions/662 ... change-set