在Clojure Uberjar中找不到Flyway迁移

时间:2013-06-24 00:01:25

标签: clojure flyway

我正在使用Flyway从Clojure中进行数据库迁移。问题 我有的是,当我制作一个uberjar来部署我的应用程序时,Flyway不能 找到jar文件中的迁移。它运作良好 开发,没有打包应用程序。我尝试了一堆 将迁移sql文件添加到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 /添加到project.clj文件中的资源路径,但它仍然找不到它们。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

发生这种情况是因为leiningen生成的jar / uberjars中没有包含目录条目直到版本2.3.2,所以ClassLoader#getResources("db/migration/")总是返回null。

将在leiningen 2.3.3(问题#1303)中修复。

答案 1 :(得分:0)

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

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