【发布时间】:2015-08-11 20:03:51
【问题描述】:
尝试在 PostgreSQL 9.3 数据库(来自 PowerShell 脚本)上的 liquibase 3.3.3 中执行 diffChangelog:
$_cmd='C:\liquibase-3.3.3-bin\liquibase
--driver=org.postgresql.Driver
--url=jdbc:postgresql://localhost:5432/chaos
--username=postgres --password=Password
diffChangelog
--referenceUrl=jdbc:postgresql://xxx.xxx.xxx.xxx:5432/chaos
--referenceUsername=postgres --referencePassword=Password > db-changelog.xml';
CMD.EXE /c "`"$_cmd`""
我得到错误:
*CMD.EXE : Unexpected error running Liquibase:
liquibase.exception.DatabaseException: java.lang.NumberFormatException:
For input string: "B'00000000'::"bit""*
我正在使用 Java 版本 8 更新 45。(最新版本)。
postgresql-9.4-1201.jdbc4.jar 位于 C:\liquibase-3.3.3-bin\lib\ 目录下。
PostgreSQL 版本是 9.3。
有人知道如何修复此错误或使其正常工作吗?
提前非常感谢!
【问题讨论】:
-
如果你
write-host $_cmd并将结果复制粘贴到 cmd 提示符中,它可以工作吗? -
您能否添加完整的堆栈跟踪以查看这是 Liquibase 问题还是驱动程序问题?
-
@vonPryz(不知道如何粘贴到 cmd 提示符) write-host 的应对输出给出:与 DatabaseException 的错误完全相同:java.lang.NumberFormatException: ... 没有区别。想法? :-(
-
@a_horse_with_no_name 什么堆栈跟踪? (我对这一切都很陌生)。对我来说没有明显的堆栈跟踪。 (我是新手)。谢谢。
-
如果可以,请尝试使用 Java 7 VM。我认为 Liquibase 和 Java 8 存在一些问题。
标签: java postgresql powershell liquibase