我正在尝试在我的Ant项目中使用Flyway来运行DDL脚本。我设法配置了类路径,以便Flyway看到迁移脚本。当我运行flyway:迁移任务时,我得到了这个例外:
Unable to obtain resource from (...)/src/ddl/V1__create_tables_logging.sql: java.util.zip.ZipException: error in opening zip file
[flyway:migrate] Unable to obtain resource from (...)/src/ddl/V1__create_tables_logging.sql:
[flyway:migrate] java.util.zip.ZipException: error in opening zip file
最后有一个建议:
[flyway:migrate] Possible solution: run the Ant javac and copy tasks first so Flyway can find the migrations
但我的项目不是Java应用程序,我没有使用javac编译的java源代码。 Flyway是否需要在jar中打包迁移脚本?它不能简单地用SQL语句运行一些文本文件吗?
答案 0 :(得分:0)
不幸的是,你没有提供你的配置,没有它很难说,究竟是什么导致了这个问题。
但对我来说似乎很奇怪,你没有使用任务的location
属性,而是classpath
。尝试使用迁移脚本指定目录,如下所示:
<flyway:migrate>
<locations>
<location path="path/to/migrations"/>
</locations>
...
</flyway:migrate>