我正在尝试设置一个基于maven的liquibase数据库设置,但是当我从build/target目录运行一些东西时,得到了以下错误。以下是更改日志的调试信息和目录结构。
/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发布于 2015-11-08 02:43:10
直接从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:update来更新数据库(请注意参考资料中的liquibase.properties文件)。
https://stackoverflow.com/questions/29921622
复制相似问题