我可以从jar /多个模式加载flyway迁移

时间:2013-01-05 23:56:53

标签: java sql flyway

我正在尝试飞越并且对类路径和JAR有一个理解问题。

我有一个项目,在多个maven模块中有多个服务。我希望每个服务都使用flyway维护其架构。所以每个服务都是一个maven模块,它有自己的资源目录,我可以放置SQL脚本,哪些是JAR的一部分。 现在,该服务可以在嵌入模式下运行,其中多个服务JAR存在于最终用户应用程序中(例如tomcat)。

在服务初始化时,我将使用每个服务的数据源运行flyway migrate。如果我使用java迁移,我可以将java类保存在与impls相同的包中并按位置分隔,但是如果我使用SQL迁移,我会这样:

src/main/resources/db/migration/V1_1__Populate_table.sql

在每个模块中。现在的问题是:

  • 飞路可以从罐子里执行sql脚本吗?
  • 如果是,我可以指定执行哪些罐子吗?

1 个答案:

答案 0 :(得分:7)

如果JAR是类路径的一部分,则将选择迁移。

在您的情况下,您应该为每个模块使用一个Flyway实例。然后,此实例配置有自己的SQL迁移位置,以便仅拾取相关文件。

Ex:flyway.locations = db / migration / mymodule

将SQL迁移放在与该模块的java类相同的包中也没有什么停止。