How to use extensions?

Hi,

I 'm trying to run Vacuum Database ext but I can’t. I know that it is ext for PostgreSQL (My DB is Oracle), but I only want to know how to create and add ext to LiquiBase, because I gonnna create my own for Oracle.

I have already done all the steps (LiquidBase 2.0.1b is installed)

  1. Add to classpath ext jar file.
  2. Create XML file with simple example from web.
  3. Create BAT file.

All files are in the same catalogue.

Content of files

#liquibase.properties

    #liquibase.properties driver: oracle.jdbc.OracleDriver classpath: ojdbc14.jar;liquibase-vacuum-1.0.jar url: jdbc:oracle:thin:@:1521:XE username: password:

#vacuum.xml

    http://www.liquibase.org/xml/ns/dbchangelog"       xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd       http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">          

#update.bat

    @echo off call liquibase --changeLogFile=vacuum.xml update

Massage during executing update.bat

    org.xml.sax.SAXException: Unknown LiquiBase extension: vacuum.  Are you missing a jar from your classpath?         at liquibase.parser.xml.XMLChangeLogSAXHandler.startElement(XMLChangeLogSAXHandler.java:218)         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)         at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)         at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(Unknown Source)         at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)         at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)         at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)         at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)         at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)         at liquibase.parser.xml.XMLChangeLogSAXParser.parse(XMLChangeLogSAXParser.java:80)         at liquibase.Liquibase.update(Liquibase.java:106)         at liquibase.integration.commandline.Main.doMigration(Main.java:656)         at liquibase.integration.commandline.Main.main(Main.java:103) Migration Failed: Unknown LiquiBase extension: vacuum.  Are you missing a jar from your classpath?

I have no idea why it doesn’t work.

Best Regards
dalt

hello.

I have the same problem, but i don’t use ext.

I added to the main project 3 classes:

liquibase.statement.core.ClassStatement,
liquibase.change.core.ClassChange  &
liquibase.sqlgenerator.core.ClassGenerator,

and I also have that error.

I am able to duplicate your issue, I should have a beta2 release of 2.0 out tomorrow or the next day that will resolve it.  Thanks for pointing it out.  Too many variations on how classloading can work…

Nathan

I’m afraid that this isn’t resolved yet, because now with beta2 I get this (logLevel set to DEBUG):

    2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateDatabase: Missing dependency org/hibernate/cfg/Configuration 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateGenericDialect: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateDatabase: Missing dependency org/hibernate/cfg/Configuration 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateGenericDialect: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateDatabase: Missing dependency org/hibernate/cfg/Configuration 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateGenericDialect: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateDatabase: Missing dependency org/hibernate/cfg/Configuration 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateGenericDialect: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateDatabase: Missing dependency org/hibernate/cfg/Configuration 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateGenericDialect: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateDatabase: Missing dependency org/hibernate/cfg/Configuration 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateGenericDialect: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.snapshot.core.HibernateDatabaseSnapshotGenerator: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.ext.vacuum.VacuumChangeTest: Missing dependency liquibase/exception/JDBCException 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.snapshot.core.HibernateDatabaseSnapshotGenerator: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.ext.vacuum.VacuumChangeTest: Missing dependency liquibase/exception/JDBCException 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.snapshot.core.HibernateDatabaseSnapshotGenerator: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.ext.vacuum.VacuumChangeTest: Missing dependency liquibase/exception/JDBCException 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.snapshot.core.HibernateDatabaseSnapshotGenerator: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.ext.vacuum.VacuumChangeTest: Missing dependency liquibase/exception/JDBCException 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.snapshot.core.HibernateDatabaseSnapshotGenerator: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.ext.vacuum.VacuumChangeTest: Missing dependency liquibase/exception/JDBCException 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.snapshot.core.HibernateDatabaseSnapshotGenerator: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.ext.vacuum.VacuumChangeTest: Missing dependency liquibase/exception/JDBCException 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateDatabase: Missing dependency org/hibernate/cfg/Configuration 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateGenericDialect: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.snapshot.core.HibernateDatabaseSnapshotGenerator: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:50 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.ext.vacuum.VacuumChangeTest: Missing dependency liquibase/exception/JDBCException 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger info INFO: Could not set remarks reporting on OracleDatabase: liquibase.database.JdbcConnection.setRemarksReporting(boolean) 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateDatabase: Missing dependency org/hibernate/cfg/Configuration 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.database.core.HibernateGenericDialect: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.snapshot.core.HibernateDatabaseSnapshotGenerator: Missing dependency org/hibernate/dialect/Dialect 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger warning WARNING: Could not configure extension class liquibase.ext.vacuum.VacuumChangeTest: Missing dependency liquibase/exception/JDBCException 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger info INFO: Lock Database 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger info INFO: Successfully acquired change log lock 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger warning WARNING: vacuum.xml is using schema version dbchangelog rather than version 2.0 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger info INFO: Reading from DATABASECHANGELOG 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger info INFO: Changeset vacuum.xml::1::nvoxland::(MD5Sum: 2:63c613a117132908344f2554bb6b4c17) 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger info INFO: Release Database Lock 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger info INFO: Successfully released change log lock Migration Failed: Unknown Reason.  For more information, use the --logLevel flag) 2009-08-19 12:45:51 liquibase.logging.JavaUtilLogger severe SEVERE: Unknown Reason liquibase.exception.MigrationFailedException: Migration failed for change set vacuum.xml::1::nvoxland:     Reason: java.lang.NullPointerException:           Caused By: null         at liquibase.changelog.ChangeSet.execute(ChangeSet.java:236)         at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:26)         at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:39)         at liquibase.Liquibase.update(Liquibase.java:113)         at liquibase.integration.commandline.Main.doMigration(Main.java:661)         at liquibase.integration.commandline.Main.main(Main.java:106) Caused by: java.lang.NullPointerException         at liquibase.sqlgenerator.SqlGeneratorFactory.generateSql(SqlGeneratorFactory.java:112)         at liquibase.executor.AbstractExecutor.applyVisitors(AbstractExecutor.java:21)         at liquibase.executor.core.jdbc.JdbcExecutor.access$000(JdbcExecutor.java:32)         at liquibase.executor.core.jdbc.JdbcExecutor$1ExecuteStatementCallback.doInStatement(JdbcExecutor.java:75)         at liquibase.executor.core.jdbc.JdbcExecutor.execute(JdbcExecutor.java:48)         at liquibase.executor.core.jdbc.JdbcExecutor.execute(JdbcExecutor.java:85)         at liquibase.database.AbstractDatabase.execute(AbstractDatabase.java:1257)         at liquibase.database.AbstractDatabase.executeStatements(AbstractDatabase.java:1244)         at liquibase.changelog.ChangeSet.execute(ChangeSet.java:212)         ... 5 more

dalt

Thanks, I’ll look into it more.

Nathan