我正在使用液化库为先前存在的德比数据库生成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液化基报告了一个sql语法错误ERROR 42X01: Syntax error: Encountered "CONSTRAINTS" at line 1, column 8。
有人能提供解决这个问题的指针吗?
下面是错误日志:
Liquibase主页没有设置。Liquibase Home: /xxx/液化基调试1/9/13 5:40 PM:液化基:无法加载/访问Apache Derby驱动程序类检查版本调试1/9/13 5:40 PM:无法加载/访问Apache Derby驱动程序类以检查调试版本1/9/13 5:40 PM:液化基:连接到APP@jdbc:derby:/xxx/TestDb/yyyy.db 1/9/13 5:40 PM:液化基:读取APP @jdbc:/xxx/TestDb/yyyy.db.信息1/9/13 5:40下午:液化:读取表格的APP @ jdbc:derby:/xxx/TestDb/yyyy.db .调试1/9/13 5:40下午:液化:为APP @jdbc读取视图:derby:/xxx/TestDb/yyyy.db.信息1/9/13 5:40下午:液化:读取APP @jdbc的视图:derby:/xxx/TestDb/yyyy.db.调试1/9/13 5:40下午:液化:为APP @jdbc读取外键:derby:/xxx/TestDb/yyyy.db.信息1/9/13 5:40下午:液化:读取外键的APP @ jdbc:derby:/xxx/TestDb/yyyy.db .调试1/9/13 5:40下午:液化:读取APP @jdbc的主键:derby:/xxx/TestDb/yyyy.db.信息1/9/13 5:40下午:液化:读取APP @jdbc的主键:derby:/xxx/TestDb/yyyy.db.调试1/9/13 5:40下午:液化:为APP @jdbc读取列:derby:/xxx/TestDb/yyyy.db.信息1/9/13 5:40下午:液化基:为APP @jdbc读取列:derby:/xxx/TestDb/yyyy.db.信息1/9/13 5:40下午:液化:关闭德比连接: jdbc: derby :/xxx/TestDb/yyyy.db;shutdown=true Liquibase更新失败:语法错误:在第1行第8列遇到“约束”。严重的1/9/13 5:40 PM:液化基:语法错误:在第1行遇到“约束”,第8列。liquibase.exception.DatabaseException: java.sql.SQLSyntaxErrorException:语法错误:在第1行遇到“约束”,liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.createSnapshot(JdbcDatabaseSnapshotGenerator.java:251) at liquibase.snapshot.DatabaseSnapshotGeneratorFactory.createSnapshot(DatabaseSnapshotGeneratorFactory.java:69) at liquibase.diff.Diff.compare(Diff.java:63) at 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(Unknown Source)在org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)在org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)在org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)在org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown(来源)在org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown来源)在org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown来源)在org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown源头)在liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.isColumnAutoIncrement(JdbcDatabaseSnapshotGenerator.java:842) at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.readColumns(JdbcDatabaseSnapshotGenerator.java:369)在liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.createSnapshot(JdbcDatabaseSnapshotGenerator.java:244) .5下引起的: java.sql.SQLException:语法错误:在第1行遇到“约束”,(列8.在org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown源代码中)). 16由以下原因引起的:错误42X01:语法错误:在第1行遇到“约束”,列8.在org.apache.derby.iapi.error.StandardException.newException(Unknown Source)在org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(Unknown Source)在org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)在org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)在org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(资料来源不明). 10
发布于 2013-01-10 15:10:07
您的工具正在生成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
https://stackoverflow.com/questions/14253579
复制相似问题