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

SQL構文エラーERROR 42X01: Syntax error: Encountered "CONSTRAINTS" at line 1, column 8がliquibaseによって報告されました。

誰かがこの問題を解決するための指針を提供できますか?

以下はエラーログです。

LiquibaseHomeが設定されていません。Liquibaseホーム:/ xxx / liquibase DEBUG 1/9/13 5:40 PM:liquibase:バージョンを確認するためにApacheDerbyドライバークラスをロード/アクセスできませんDEBUG1/9/13 5:40 PM:liquibase:ロード/アクセスできませんバージョンを確認するためのApacheDerbyドライバークラスDEBUG1/9/135: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のテーブル...情報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:

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 に答える