Flyway ERROR:无法加载Mac Sierra 10.13

时间:2017-12-03 20:59:34

标签: macos command-line-interface flyway

我使用brew安装了flyway,我试图为postgres运行迁移,并且我收到了这个错误:

Boxfuse的Flyway 4.2.0

错误:无法加载/usr/local/Cellar/flyway/4.2.0/libexec/drivers/postgresql-9.4.1208.jre6.jar

我已检查此路径,目录和文件存在。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

这是使用版本5.x已解决的Flyway 4.x的已知问题(1545

解决方案:安装版本5.x - 我向Homebrew提交了pull request以更新公式

根本原因是ClassCastException - 与Java 9更改(issue 3)相关。

使用-X标志运行以查看真实问题:

$ flyway info -X
Flyway 4.2.0 by Boxfuse

DEBUG: Java 9.0.1 (Oracle Corporation)
DEBUG: Mac OS X 10.13.1 x86_64

DEBUG: Loading config file: /usr/local/Cellar/flyway/4.2.0/libexec/conf/flyway.conf
DEBUG: Unable to load config file: /Users/sdc/flyway.conf
DEBUG: Loading config file: /Users/sdc/code/flytest/flyway.conf
DEBUG: Using configuration:
DEBUG: flyway.jarDirs -> /usr/local/Cellar/flyway/4.2.0/libexec/jars
DEBUG: flyway.driver -> com.mysql.jdbc.Driver
DEBUG: flyway.locations -> filesystem:/usr/local/Cellar/flyway/4.2.0/libexec/sql
DEBUG: flyway.url -> jdbc:mysql://localhost:3306/eddydb
DEBUG: flyway.user -> root
DEBUG: flyway.password -> *********
DEBUG: Adding location to classpath: /usr/local/Cellar/flyway/4.2.0/libexec/drivers/postgresql-9.4.1208.jre6.jar
ERROR: Unexpected error
org.flywaydb.core.api.FlywayException: Unable to load /usr/local/Cellar/flyway/4.2.0/libexec/drivers/postgresql-9.4.1208.jre6.jar
    at org.flywaydb.core.internal.util.ClassUtils.addJarOrDirectoryToClasspath(ClassUtils.java:156)
    at org.flywaydb.commandline.Main.loadJdbcDrivers(Main.java:305)
    at org.flywaydb.commandline.Main.main(Main.java:95)
Caused by: java.lang.ClassCastException: java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader
    at org.flywaydb.core.internal.util.ClassUtils.addJarOrDirectoryToClasspath(ClassUtils.java:151)
    ... 2 more