2017-09-14 35 views
0

我使用Liquibase並嘗試使用命令liquibase generateChangeLog。 我正在使用正確的連接器和憑據。在從所有表中獲取信息後,調試跟蹤在最後顯示此錯誤。Liquibase generateChangeLog MissingObjectChangeGenerator

DEBUG 14/09/17 16.30: liquibase: MissingObjectChangeGenerator type order:  liquibase.structure.core.Catalog liquibase.structure.core.Schema liquibase.structure.core.Sequence liquibase.structure.core.StoredProcedure liquibase.structure.core.Table liquibase.structure.core.Column liquibase.structure.core.PrimaryKey liquibase.structure.core.UniqueConstraint liquibase.structure.core.Index liquibase.structure.core.ForeignKey liquibase.structure.core.View 
Unexpected error running Liquibase: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 

SEVERE 14/09/17 16.30: liquibase: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 
liquibase.exception.LiquibaseException: liquibase.command.CommandExecutionException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 
     at liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:265) 
     at liquibase.integration.commandline.Main.doMigration(Main.java:1011) 
     at liquibase.integration.commandline.Main.run(Main.java:188) 
     at liquibase.integration.commandline.Main.main(Main.java:103) 
Caused by: liquibase.command.CommandExecutionException: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 
     at liquibase.command.AbstractCommand.execute(AbstractCommand.java:13) 
     at liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:263) 
     ... 3 more 
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 
     at java.util.ArrayList.rangeCheck(Unknown Source) 
     at java.util.ArrayList.get(Unknown Source) 
     at liquibase.change.ColumnConfig.<init>(ColumnConfig.java:119) 
     at liquibase.change.AddColumnConfig.<init>(AddColumnConfig.java:16) 
     at liquibase.diff.output.changelog.core.MissingIndexChangeGenerator.fixMissing(MissingIndexChangeGenerator.java:63) 
     at liquibase.diff.output.changelog.ChangeGeneratorChain.fixMissing(ChangeGeneratorChain.java:47) 
     at liquibase.diff.output.changelog.ChangeGeneratorFactory.fixMissing(ChangeGeneratorFactory.java:99) 
     at liquibase.diff.output.changelog.DiffToChangeLog.generateChangeSets(DiffToChangeLog.java:193) 
     at liquibase.diff.output.changelog.DiffToChangeLog.print(DiffToChangeLog.java:147) 
     at liquibase.diff.output.changelog.DiffToChangeLog.print(DiffToChangeLog.java:88) 
     at liquibase.diff.output.changelog.DiffToChangeLog.print(DiffToChangeLog.java:75) 
     at liquibase.command.GenerateChangeLogCommand.run(GenerateChangeLogCommand.java:54) 
     at liquibase.command.AbstractCommand.execute(AbstractCommand.java:8) 
     ... 4 more 

回答

0

最後我終於找到了解決辦法。

有這些問題:

  1. 柱的用空格分隔的名字。
  2. 沒有主鍵的表。
  3. 主鍵上的索引。

因此,消除空格,給PK和刪除無用的索引錯誤消失,我可以繼續。

無論如何。