1

我正在使用 liquibase 为预先存在的 derby 数据库生成 changeLog.xml。

liquibase --logLevel=debug --driver=org.apache.derby.jdbc.EmbeddedDriver
--classpath=/xxx/derby.jar --changeLogFile=/xxx/TestDb/db.changelog2.xml
--url="jdbc:derby:/xxx/TestDb/yyyy.db" --username= --password= generateChangeLog

ERROR 42X01: Syntax error: Encountered "CONSTRAINTS" at line 1, column 8liquibase 报告了一个 sql 语法错误。

有人可以提供解决此问题的任何指示吗?

以下是错误日志:

未设置 Liquibase 主页。Liquibase 主页:/xxx/liquibase 调试 1/9/13 下午 5:40:liquibase:无法加载/访问 Apache Derby 驱动程序类以检查版本调试 1/9/13 下午 5:40:liquibase:无法加载/访问Apache Derby 驱动程序类检查版本 DEBUG 1/9/13 5:40 PM:liquibase: Connected to APP@jdbc:derby:/xxx/TestDb/yyyy.db DEBUG 1/9/13 5:40 PM:liquibase: Reading APP @ jdbc:derby:/xxx/TestDb/yyyy.db 的表 ... INFO 1/9/13 5:40 PM:liquibase: 为 APP @ jdbc:derby:/xxx/TestDb/yyyy.db 读取表。 .. DEBUG 1/9/13 5:40 PM:liquibase:阅读视图 APP @ jdbc:derby:/xxx/TestDb/yyyy.db ... INFO 1/9/13 5:40 PM:liquibase:阅读视图对于 APP @ jdbc:derby:/xxx/TestDb/yyyy.db ... DEBUG 1/9/13 5:40 PM:liquibase: 为 APP @ jdbc:derby:/xxx/TestDb/yyyy.db 读取外键。 .. 信息 2013 年 1 月 9 日下午 5:40:liquibase:

4

1 回答 1

1

您的工具正在生成 Derby 认为无效的 SQL,因此出现以下消息:

 Syntax error: Encountered "CONSTRAINTS" at line 1, column 8

如果您可以使用 JVM 参数运行程序

  -Dderby.language.logStatementText=true

然后查看您的 derby.log 文件,您应该能够看到您的工具正在生成并发出给 Derby 的确切 SQL 语句。

这里有更多关于 derby.language.logStatementText 属性的文档:http: //db.apache.org/derby/docs/10.9/ref/rrefproper43517.html

于 2013-01-10T15:10:07.290 回答