1

环境

  • 老板6
  • 飞路 1.5
  • 弹簧芯 2.5.6

战争结构

ei-web-1.0.1-SNAPSHOT.war
    |WEB-INF
      |classes
        |db
          |migrations
            |ei
              |V5.7.0.sql
              |V5.7.1.sql
              |V5.7.2.sql

问题

当我尝试在 JBoss 启动时加载的 MBean 中执行 Flyway 迁移时,我得到以下堆栈跟踪。

java.io.FileNotFoundException: URL [vfs:/C:/jboss-6.1.0.Final/server/ei/deploy/ei-web-1.0.1-SNAPSHOT.war/WEB-INF/classes/db/migrations/ ei/] 无法解析为绝对文件路径,因为它不在文件系统中:vfs:/C:/jboss-6.1.0.Final/server/ei/deploy/ei-web-1.0.1-SNAPSHOT。战争/WEB-INF/classes/db/迁移/ei/

线索

  • flyway 基础目录是db/migrations/ei
  • flyway初始版本为5.7.0
  • 以独立方式启动时,迁移是可以的
  • 恕我直言,问题是类路径目录扫描不成功的结果。

请参阅com.googlecode.flyway.core.migration.sql.SqlMigrationResolver (L.99)

final String searchPattern = "**/" + sqlMigrationPrefix + "?*" + sqlMigrationSuffix;
Resource[] resources = new PathMatchingResourcePatternResolver(classLoader)
                .getResources("classpath:" + searchRoot + searchPattern);

就我而言,资源返回一个空数组。

4

1 回答 1

1

这听起来与https://github.com/flyway/flyway/issues/91相同的问题

随意投下你的一票:-)

于 2012-03-22T20:28:13.963 回答