在启动webapp之前使用Spring运行Flyway迁移

时间:2015-01-31 04:24:58

标签: spring flyway

我们使用Spring并将Flyway集成到一个使用DispatcherServlet并运行后台数据库线程的webapp中。

如何控制Spring的执行流程,以便在启动之前进行迁移?延迟DispatcherServlet启动和控制器创建应该足以满足我们的目的。

4 个答案:

答案 0 :(得分:3)

您可以尝试Spring Boot flyway support http://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html

我没有使用它,但我希望它在“启动”“真实”应用程序之前运行flyway脚本。 (如果不是,那将毫无用处)

答案 1 :(得分:0)

我认为Flyway Callbacks之后的迁移方法正是您所寻找的。

答案 2 :(得分:0)

你可以在一个单独的工厂中飞行到你的春季MVC的东西。通过这种方式,您可以在具体的MVC内容出现之前完全创建并完成飞路和其他业务逻辑等工厂。

我建议你把这两个问题分开来分开工厂,因为它很好地区分了两个上下文。

实现这一目标的一种方法是在Spring MVC之前启动业务逻辑/ flyway工厂......

答案 3 :(得分:0)

你真正想要的是Flyway在你的持久层出现之前迁移数据库。

由于您的控制器已经依赖于此持久层,因此您现在需要使持久层本身依赖于Flyway。使用XML配置,可以使用official docs中描述的依赖属性来实现。