我正在尝试飞越并且对类路径和JAR有一个理解问题。
我有一个项目,在多个maven模块中有多个服务。我希望每个服务都使用flyway维护其架构。所以每个服务都是一个maven模块,它有自己的资源目录,我可以放置SQL脚本,哪些是JAR的一部分。 现在,该服务可以在嵌入模式下运行,其中多个服务JAR存在于最终用户应用程序中(例如tomcat)。
在服务初始化时,我将使用每个服务的数据源运行flyway migrate。如果我使用java迁移,我可以将java类保存在与impls相同的包中并按位置分隔,但是如果我使用SQL迁移,我会这样:
src/main/resources/db/migration/V1_1__Populate_table.sql
在每个模块中。现在的问题是:
答案 0 :(得分:7)
如果JAR是类路径的一部分,则将选择迁移。
在您的情况下,您应该为每个模块使用一个Flyway实例。然后,此实例配置有自己的SQL迁移位置,以便仅拾取相关文件。
Ex:flyway.locations = db / migration / mymodule
将SQL迁移放在与该模块的java类相同的包中也没有什么停止。