当前位置: 首页 > 知识库问答 >
问题:

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

何涵育
2023-03-14

我正在试用flyway,对类路径和JAR有一个理解问题。

我有一个在多个maven模块中包含多个服务的项目。我希望每个服务都使用flyway维护其模式。因此,每个服务都是一个maven模块,具有自己的资源目录,我可以在其中放置SQL脚本,这将是JAR的一部分。现在,服务可以在嵌入式模式下运行,在嵌入式模式下,终端用户应用程序(例如tomcat)中存在多个服务JAR。

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

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

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

  • flyway可以从JAR执行sql脚本吗
  • 如果是,我可以指定要执行哪些JAR吗

共有1个答案

尚恩
2023-03-14

如果jar是类路径的一部分,那么迁移将被拾取。

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

例:飞行路线。位置=db/migration/mymodule

将SQL迁移与该模块的java类放在同一个包中也不会停止。

 类似资料:
  • 我想使用 Flyway 获取特定数据库的最新架构版本值。Flyway 中是否有函数可以在命令行中获取当前架构版本号? 我可以运行以下命令: 这为我提供了数据库的整个架构内容(缩短),如下所示: 我只对最后一个架构条目版本“1.5.9”值感兴趣。 我的环境如下: < li>Windows 7 < li>Flyway 3.0

  • 是否有可能从maven flyway插件的罐子迁移?我对sqls和java(编译到类)没有问题,但对jars没有成功。类路径设置正确。

  • 我有一个关于Flyway DB迁移的问题。如何管理处理同一数据库模式的多个项目(微服务)。如果每个项目中的Flyway移植脚本被其他项目修改,则不允许启动该脚本。他们是否有相关的文档或最佳实践?

  • 我正在将一个Java8项目迁移到Java11。使用的IDE是Eclipse2020-09。我还没有将项目模块化。 对于以下进口产品: 我收到编译时错误消息: 我已经检查了我的项目和组织。w3c。dom包不存在于第三方LIB中,也不由项目JAR中的任何可传递依赖项添加。 但是请注意,org。w3c。多姆。文档是一个接口,我发现很少有库实现这个接口。这是问题的根源吗 可以从多个模块访问包 留言? 下面

  • 我对Flyway完全陌生,但我正在尝试使用https://github.com/flyway/flyway-docker描述的docker-compose flyway mysql安排来迁移许多相同的测试数据库 据我所知,< code>migrate命令可以在它的< code>-schemas参数中接受多个模式,但是它似乎只将实际的SQL迁移应用于列表中的第一个模式。 例如,当我使用< code>

  • 我在JBoss7中部署了一个WAR,它使用上下文类加载器动态加载jar资源。 但是,上下文类加载器只在WEB-INF/lib文件夹中查找资源 Service Module Loader中模块“Deployment..war:main”的ModuleClassLoader 我如何在jboss中为我拥有资源的特定模块获取类加载器。我有需要加载到jboss_home/modules/org/custom