2015-04-28 157 views
0

我想建立一個基於maven的liquibase數據庫設置,但是當我從build/target目錄運行某些東西時出現以下錯誤。以下是更改日誌的調試信息和目錄結構。Liquibase錯誤

/com/example/database/.),liquibase.integration.commandline.CommandLineResourceAccessor(file:/home/www-data/workspace/database/src/main/resource/com/example/database/lib/ojdbc6-11.2.0.3.jar)) 
DEBUG 4/28/15 11:48 PM: liquibase: Release Database Lock 
DEBUG 4/28/15 11:48 PM: liquibase: Executing UPDATE database command: UPDATE LB_TEST.DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1 
INFO 4/28/15 11:48 PM: liquibase: Successfully released change log lock 

INFO 4/28/15 11:48 PM: liquibase: Successfully released change log lock 
Unexpected error running Liquibase: liquibase.exception.SetupException: liquibase.exception.SetupException 

SEVERE 4/28/15 11:48 PM: liquibase: liquibase.exception.SetupException: liquibase.exception.SetupException 
liquibase.exception.ChangeLogParseException: liquibase.exception.SetupException: liquibase.exception.SetupException: liquibase.exception.SetupException 
    at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:27) 
    at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:215) 
    at liquibase.Liquibase.update(Liquibase.java:192) 
    at liquibase.integration.commandline.Main.doMigration(Main.java:1073) 
    at liquibase.integration.commandline.Main.run(Main.java:178) 
    at liquibase.integration.commandline.Main.main(Main.java:97) 
Caused by: liquibase.exception.SetupException: liquibase.exception.SetupException: liquibase.exception.SetupException 
    at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:260) 
    at liquibase.changelog.DatabaseChangeLog.load(DatabaseChangeLog.java:221) 
    at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:25) 
    ... 5 more 
Caused by: liquibase.exception.ChangeLogParseException: liquibase.exception.SetupException: liquibase.exception.SetupException 
    at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:27) 
    at liquibase.changelog.DatabaseChangeLog.include(DatabaseChangeLog.java:377) 
    at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:258) 
    ... 7 more 
Caused by: liquibase.exception.SetupException: liquibase.exception.SetupException 
    at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:260) 
    at liquibase.changelog.DatabaseChangeLog.load(DatabaseChangeLog.java:221) 
    at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:25) 
    ... 9 more 
Caused by: liquibase.exception.ChangeLogParseException: liquibase.exception.SetupException 
    at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:27) 
    at liquibase.changelog.DatabaseChangeLog.include(DatabaseChangeLog.java:377) 
    at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:258) 
    ... 11 more 
Caused by: liquibase.exception.SetupException 
    at liquibase.changelog.DatabaseChangeLog.includeAll(DatabaseChangeLog.java:355) 
    at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:274) 
    at liquibase.changelog.DatabaseChangeLog.load(DatabaseChangeLog.java:221) 
    at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:25) 
    ... 13 more 
Caused by: java.lang.NullPointerException 
    at java.util.AbstractCollection.addAll(AbstractCollection.java:343) 
    at liquibase.integration.commandline.CommandLineResourceAccessor.list(CommandLineResourceAccessor.java:39) 
    at liquibase.resource.CompositeResourceAccessor.list(CompositeResourceAccessor.java:40) 
    at liquibase.changelog.DatabaseChangeLog.includeAll(DatabaseChangeLog.java:332) 
    ... 16 more 

任何想法是什麼?

目錄結構:

. 
|-- changelog 
| |-- changelog-1.0.0.xml 
| |-- changelog-install.xml 
| `-- v000 
|  |-- cst 
|  | |-- entity_extra_data.xml 
|  | |-- entity.xml 
|  | |-- group_mapping.xml 
|  |-- master.xml 
|  |-- seq 
|  `-- tab 
|   |-- company.xml 
|   |-- entity_extra_data.xml 
|   |-- entity.xml 
|   `-- group_mapping.xml 
|-- db_install 
|-- lib 
| |-- ojdbc6-11.2.0.3.jar 
`-- liquibase.properties 
+0

您可以包含您使用的命令行嗎?當你說「當我嘗試從build/target目錄運行某些東西」時,你不明白你的意思。 查看你的更新日誌文件的外觀也是有幫助的。 – SteveDonie

+0

liquibase --changeLogFile = changelog/changelog-install.xml更新; –

+0

哎呀,不要怎麼過來!但目前它的工作。我真的沒有對上述目錄結構或任何腳本或xml進行任何更改:(。 –

回答

0

另一種更簡單的方法,直接從Maven項目運行liquibase是使用liquibase Maven插件

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<project> 
 
    <build> 
 
     <plugins> 
 
     <plugin> 
 
      <groupId>org.liquibase</groupId> 
 
      <artifactId>liquibase-maven-plugin</artifactId> 
 
      <version>3.4.1</version> 
 
      <configuration> 
 
      <propertyFileWillOverride>true</propertyFileWillOverride> 
 
      <propertyFile>target/classes/liquibase.properties</propertyFile> 
 
      </configuration> 
 
     </plugin> 
 
     </plugins> 
 
    </build> 
 
    </project>

,並從項目的根文件夾您只需運行 mvn liquibase:更新 即可更新數據庫ase(請注意資源中的liquibase.properties文件)