我正在使用SQL Server 2012和liquibase版本2.0.1来支持Java应用程序(java版本1.7)中的数据库更新。liquibase迁移2.x到3.0的问题
我要迁移liquibase版本3.x和我正在帮助来自liquibase site
它说Liquibase 3.0.0是一个下拉更换任何Liquibase 2.0.x的版本。
当我与依赖随着3.0.0版本罐子代替现有的版本,我得到在日志下面的错误 -
Liquibase updateSQL Failed: liquibase/database/structure/type/DataType
详细的错误:
INFO 3/12/14 3:02 PM:liquibase: Successfully acquired change log lock
INFO 3/12/14 3:02 PM:liquibase: Successfully released change log lock
INFO 3/12/14 3:02 PM:liquibase: Successfully released change log lock
SEVERE 3/12/14 3:02 PM:liquibase: liquibase/database/structure/type/DataType
java.lang.NoClassDefFoundError: liquibase/database/structure/type/DataType
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at liquibase.change.custom.CustomChangeWrapper.setClass(CustomChangeWrapper.java:84)
at liquibase.parser.core.xml.XMLChangeLogSAXHandler.setProperty(XMLChangeLogSAXHandler.java:585)
at liquibase.parser.core.xml.XMLChangeLogSAXHandler.setAllProperties(XMLChangeLogSAXHandler.java:517)
at liquibase.parser.core.xml.XMLChangeLogSAXHandler.startElement(XMLChangeLogSAXHandler.java:405)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:744)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at liquibase.parser.core.xml.XMLChangeLogSAXParser.parse(XMLChangeLogSAXParser.java:101)
at liquibase.parser.core.xml.XMLChangeLogSAXHandler.handleIncludedChangeLog(XMLChangeLogSAXHandler.java:561)
at liquibase.parser.core.xml.XMLChangeLogSAXHandler.startElement(XMLChangeLogSAXHandler.java:164)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:775)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:353)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at liquibase.parser.core.xml.XMLChangeLogSAXParser.parse(XMLChangeLogSAXParser.java:101)
at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:216)
at liquibase.Liquibase.update(Liquibase.java:194)
at liquibase.Liquibase.update(Liquibase.java:253)
at liquibase.Liquibase.update(Liquibase.java:236)
at liquibase.integration.commandline.Main.doMigration(Main.java:894)
at liquibase.integration.commandline.Main.main(Main.java:133)
Caused by: java.lang.ClassNotFoundException: liquibase.database.structure.type.DataType
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 41 more
你在通过命令行调用liquibase吗?试试'--version'标志。我的猜测是,有些东西混在一起,所以你仍然称你的liquibase的旧版本,但是没有在类路径中的版本(也许有新版本?) – Jens
@Jens:是的,我打电话给它从命令行。让我试试--version标志。 – Harshit