在Hibernate生成所有架构表之后,我需要执行Flyway迁移。 在迁移到Spring Boot 2.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 └─────┘
我该如何解决?
答案 0 :(得分:0)
理想情况下,您将在飞行通道中创建所有架构(表,序列等),而不使用Hibernate生成该架构。我建议您导出当前的架构,然后创建一个V1__init-schema.sql以便进行初始化。然后将LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return ConstrainedBox(
constraints: BoxConstraints(
maxHeight: 0,
maxHeight: constraints.maxWidth,
minWidth: constraints.maxWidth,
maxWidth: constraints.maxWidth,
),
child: [CONTENT_HERE]
);
}
)
设置为验证或不验证。
答案 1 :(得分:0)
我只是将Flyway bean注入了@SpringBootApplication类,并在CommandLineRunner init方法中执行了flyway.migrate()。 它在系统启动结束时执行,并且工作正常
谢谢
安东尼奥