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

Clojure Uberjar中未找到Flyway迁移

酆光熙
2023-03-14

我正在使用Flyway从Clojure内部进行数据库迁移。我遇到的问题是,当我制作一个uberjar来部署我的应用程序时,Flyway找不到jar文件中的迁移。它在开发中运行良好,无需打包应用程序。我尝试了一系列不同的组合来将迁移sql文件添加到jar中。我已经解压缩了jar,所有的迁移都在那里,我不确定问题是什么。

Exception in thread "main" com.googlecode.flyway.core.api.FlywayException: Unable to determine URL for classpath location: db/migration

我使用的是flyway版本2.1.1,现在我的迁移是src/db/migration。我尝试将src/添加到项目中的资源路径。clj文件,但仍然没有找到它们。有什么想法吗?

共有2个答案

冯流觞
2023-03-14

如果这会因为überjar而失败,我不会感到惊讶,因为目前在类路径扫描程序中没有对此的明确支持。

请在问题跟踪程序中提交增强请求。

连时铭
2023-03-14

发生这种情况是因为leiningen在2.3.2版之前生成的jars/uberjars中没有包含目录条目,所以ClassLoader#getResources("db/迁移/")总是返回null。

将固定在leiningen 2.3.3(问题#1303)。

 类似资料:
  • 我在我支持的许多应用程序中实现了Flyway,它像梦一样工作。 但是,当我将应用程序部署到测试环境时,迁移就停止了。 经过一些调查,我发现当迁移被加载到jar文件中时,它们不是通过Flyway定位的,而是当它们没有被压缩时(比如当我在Eclipse中工作时,或者如果我将jar解压到类路径中),它会按预期工作。 由于应用程序的插件架构,我无法使用“默认”设置,因此我将Flyway对象设置为: 如果要

  • 我们正在Karaf中部署我们的应用程序,并试图使用Flyway来处理数据库迁移,但它在运行时找不到我们的文件。我检查过的东西: > 当我为Flyway启用调试时,我可以看到它在类路径上找到了文件夹,但其中没有文件。 当408与安装的捆绑包匹配时,日志显示它正在查找正确的捆绑包。 我不确定还要查找什么,因为没有记录任何错误,而且它似乎正在查找它应该位于的文件夹,而不是sql文件。我假设这是一个清单类

  • 我部署Laravel准骨项目到Microsoft Azure,但每当我试图执行我得到的错误: [2015-06-13 14:34:05]生产。错误:异常'Symfony\Component\Debug\Exc0019\FatalErrorExc0019',消息'Class"未找到'在D:\home\site\供应商\laravel\框架\src\Illumate\数据库\Migrations\Mi

  • 我已成功地将spring boot配置为使用Flyway的新项目 随Postgres数据库从版本0001.0迁移到0008.0 我已在本地手动更改脚本,但flyway迁移失败。 错误消息示例: 注意:-我不想从表flyway_schema_history中删除脚本条目。

  • 在Spring启动应用程序中,我们在db.migrations资源文件夹中设置了版本化迁移 V1_0__create_table.sql V1_1__apply_roles.sql R__create_stored_proc.sql 版本化迁移(V1\u 0和V1\u 1)在应用程序启动时运行/验证,但似乎根本不会触发可重复迁移(R\u)。 我们有一个后迁移。sql,这似乎是触发的。 有人能帮我理

  • 当我从命令行运行我的使用Flyway的Spring Boot·科特林应用程序时,它似乎可以工作,但从IntelliJ运行时却失败了。我创建了一个复制这个问题的最小样本项目:https://github.com/pupeno/notflying 我从IntelliJ得到的错误是没有找到迁移: 据我所知,迁移就在那里,并且命名正确: 运行它的IntelliJ配置如下所示: 我补充说: to 和尝试从