我正在使用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
liquibase报告了一个sql语法错误ERROR 42X01: Syntax error: Encountered "CONSTRAINTS" at line 1, column 8
。
有人可以提供解决此问题的任何指示吗?
以下是错误日志:
Liquibase Home未设置。 Liquibase主页:/ xxx / liquibase DEBUG 1/9/13 5:40 PM:liquibase:无法加载/访问Apache Derby驱动程序类 检查版本DEBUG 1/9/13 5:40 PM:liquibase:无法加载/访问 Apache Derby驱动程序类检查版本DEBUG 1/9/13 5:40 PM:liquibase:已连接到APP @ jdbc:derby:/xxx/TestDb/yyyy.db DEBUG 1/9/13 5:40 PM:liquibase:阅读APP @ 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 ... 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 ... INFO 1/9/13 5:40 PM:liquibase: 读取APP @ jdbc的列:derby:/xxx/TestDb/yyyy.db ... INFO 1/9/13 5:40 PM:liquibase:关闭德比连接: jdbc:derby:/xxx/TestDb/yyyy.db; shutdown = true Liquibase更新失败: 语法错误:在第1行第8列遇到“CONSTRAINTS”。严重 1/9/13 5:40 PM:liquibase:语法错误:遇到“CONSTRAINTS” 第1行,第8列.liquibase.exception.DatabaseException: java.sql.SQLSyntaxErrorException:语法错误:遇到 “限制因素”在第1栏第8栏。 at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.createSnapshot(JdbcDatabaseSnapshotGenerator.java:251) at liquibase.snapshot.DatabaseSnapshotGeneratorFactory.createSnapshot(DatabaseSnapshotGeneratorFactory.java:69) 在liquibase.diff.Diff.compare(Diff.java:63) 在liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:145) at liquibase.integration.commandline.Main.doMigration(Main.java:760) at liquibase.integration.commandline.Main.main(Main.java:134)引起:java.sql.SQLSyntaxErrorException:语法错误:遇到 “限制因素”在第1栏第8栏。 在org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(未知 资源) 在org.apache.derby.impl.jdbc.Util.generateCsSQLException(未知来源) 在org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(未知 资源) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(未知 资源) 在org.apache.derby.impl.jdbc.EmbedConnection.handleException(未知 资源) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(未知 资源) 在org.apache.derby.impl.jdbc.EmbedStatement.execute(未知来源) at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source) at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.isColumnAutoIncrement(JdbcDatabaseSnapshotGenerator.java:842) at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.readColumns(JdbcDatabaseSnapshotGenerator.java:369) at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.createSnapshot(JdbcDatabaseSnapshotGenerator.java:244) ... 5更多引起:java.sql.SQLException:语法错误:在第1行第8列遇到“CONSTRAINTS”。 at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知 资源) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown 资源) ... 16更多引起:ERROR 42X01:语法错误:在第1行第8列遇到“CONSTRAINTS”。 at org.apache.derby.iapi.error.StandardException.newException(未知 资源) at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(未知 资源) at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source) 在org.apache.derby.impl.sql.GenericStatement.prepare(未知来源) at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown) 资源) ......还有10个
答案 0 :(得分: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