我以前在我的大部分项目中都使用过flyway,从来没有遇到过这样的问题。我责怪奥斯吉。让我们进入细节:
我已经这样配置了flyway:
Flyway flyway = Flyway.configure().locations("classpath:db/migration").dataSource(url, user, password).load();
flyway.migrate();
它拒绝工作,我收到一个错误:
Redgate 的 Flyway 社区版 6.4.3 无法解析位置类路径:db/migration。请注意,此警告将成为 Flyway 7 中的错误。
我已经检查过了,我在 jar 文件的根目录中有迁移 sql 文件,如预期的 *.jar/db/migration/。但是flyway找不到那些。以前我使用的是操作系统文件路径:
Flyway flyway = Flyway.configure().locations("filesystem:/opt/db/migrations").dataSource(url, user, password).load();
哪个工作正常。
我的 jar 被打包到 osgi 平台的 dp 文件包中,我认为这是一个问题,因为 osgi 运行时无法通过类路径找到。我无法通过网络找到任何解决方案。我找到了这样一个: https ://github.com/flyway/flyway/issues/1626
这对我来说很恐怖。我不明白为什么如此重要的功能被标记为:
总有一天——也许
我在向你征求任何建议。提前致谢。