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

Leo*_*eon 3 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
Run Code Online (Sandbox Code Playgroud)

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

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

Axe*_*ine 7

如果JAR是类路径的一部分,则将获取迁移.

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

例如:flyway.locations = db/migration/mymodule

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