我需要在Hibernate生成所有模式表之后执行Flyway迁移。在迁移到Spring Boot2.2之前,这段代码运行良好
@Configuration
public class BaseFlywayConfiguration {
/**
* Override default flyway initializer to do nothing
*/
@Bean
FlywayMigrationInitializer flywayInitializer(Flyway flyway) {
return new FlywayMigrationInitializer(flyway, (f) -> {
});
}
/**
* Create a second flyway initializer to run after jpa has created the schema
*/
@Bean
@DependsOn("transactionManager")
FlywayMigrationInitializer delayedFlywayInitializer(Flyway flyway) {
return new FlywayMigrationInitializer(flyway, null);
}
}
不幸的是,在迁移到Spring Boot 2.2.0之后,我收到了一个与循环依赖相关的异常
这是日志:
应用程序上下文中某些bean的依赖关系形成了一个循环:
类路径资源com/myFleetSolutions/myFleet/organization/configuration/jpa/JPAConfigurationDev.class transactionManager中定义的┌─────┐|└─────┘
我该怎么解决它呢?
发布于 2019-11-08 04:35:19
我只是在@SpringBootApplication类中注入了Flyway bean,并在CommandLineRunner初始化方法中执行了flyway.migrate()。它在系统启动结束时执行,运行正常
谢谢
安东尼奥
发布于 2019-10-22 22:18:56
理想情况下,您应该创建所有模式(表、序列等)。而不是使用Hibernate来生成它。我建议导出当前的模式,然后为flyway到init创建一个V1__init-schema.sql。然后将hibernate.hbm2ddl.auto
设置为validate或none。
https://stackoverflow.com/questions/58499754
复制相似问题