I've found that if I use the Drizzle JDBC driver with MySQL liquibase fails. It generally works fine in that I can apply my change log, but on subsequent runs it can not find the DATABASECHANGELOG table. I have narrowed it down to the following stack trace. What it appears to be doing is that it finds the table and then when running the logic to see if the table found matches the table desired the Schema objects don't match. One schema object have the values {catalog=def, name=def, objects={}} and the other Schema object has the value {catalog=null, objects={}}. In the end the names don't match.
I'm guessing this is an issue with the Drizzle driver not returning something properly. Is there anything that can be done. I would really like to use the Drizzle driver because of the BSD. For all other practical purposes the driver is working fine for me.
Here's the stack trace to where its failing.
DefaultDatabaseObjectComparator.nameMatches(DatabaseObject, DatabaseObject, Database) line: 90
DefaultDatabaseObjectComparator.isSameObject(DatabaseObject, DatabaseObject, Database, DatabaseObjectComparatorChain) line: 34
DatabaseObjectComparatorChain.isSameObject(DatabaseObject, DatabaseObject, Database) line: 43
SchemaComparator.isSameObject(DatabaseObject, DatabaseObject, Database, DatabaseObjectComparatorChain) line: 30
DatabaseObjectComparatorChain.isSameObject(DatabaseObject, DatabaseObject, Database) line: 43
DatabaseObjectComparatorFactory.isSameObject(DatabaseObject, DatabaseObject, Database) line: 129
TableComparator.isSameObject(DatabaseObject, DatabaseObject, Database, DatabaseObjectComparatorChain) line: 39
DatabaseObjectComparatorChain.isSameObject(DatabaseObject, DatabaseObject, Database) line: 43
DatabaseObjectComparatorFactory.isSameObject(DatabaseObject, DatabaseObject, Database) line: 129
DatabaseObjectCollection.get(DatabaseObjectType) line: 71
JdbcDatabaseSnapshot(DatabaseSnapshot).get(DatabaseObjectType) line: 188
SnapshotGeneratorFactory.createSnapshot(T, Database, SnapshotControl) line: 134
SnapshotGeneratorFactory.has(DatabaseObject, Database) line: 90
SnapshotGeneratorFactory.hasDatabaseChangeLogLockTable(Database) line: 165
MySQLDatabase(AbstractJdbcDatabase).hasDatabaseChangeLogLockTable() line: 865
MySQLDatabase(AbstractJdbcDatabase).checkDatabaseChangeLogLockTable() line: 928
LockServiceImpl.acquireLock() line: 114
LockServiceImpl.waitForLock() line: 80
Liquibase.update(Contexts) line: 170
Liquibase.update(String) line: 162
Loader(SpringLiquibase).performUpdate(Liquibase) line: 332
Loader(SpringLiquibase).afterPropertiesSet() line: 299
Loader.afterPropertiesSet() line: 27
Thanks,
Darren
I'm guessing this is an issue with the Drizzle driver not returning something properly. Is there anything that can be done. I would really like to use the Drizzle driver because of the BSD. For all other practical purposes the driver is working fine for me.
Here's the stack trace to where its failing.
DefaultDatabaseObjectComparator.nameMatches(DatabaseObject, DatabaseObject, Database) line: 90
DefaultDatabaseObjectComparator.isSameObject(DatabaseObject, DatabaseObject, Database, DatabaseObjectComparatorChain) line: 34
DatabaseObjectComparatorChain.isSameObject(DatabaseObject, DatabaseObject, Database) line: 43
SchemaComparator.isSameObject(DatabaseObject, DatabaseObject, Database, DatabaseObjectComparatorChain) line: 30
DatabaseObjectComparatorChain.isSameObject(DatabaseObject, DatabaseObject, Database) line: 43
DatabaseObjectComparatorFactory.isSameObject(DatabaseObject, DatabaseObject, Database) line: 129
TableComparator.isSameObject(DatabaseObject, DatabaseObject, Database, DatabaseObjectComparatorChain) line: 39
DatabaseObjectComparatorChain.isSameObject(DatabaseObject, DatabaseObject, Database) line: 43
DatabaseObjectComparatorFactory.isSameObject(DatabaseObject, DatabaseObject, Database) line: 129
DatabaseObjectCollection.get(DatabaseObjectType) line: 71
JdbcDatabaseSnapshot(DatabaseSnapshot).get(DatabaseObjectType) line: 188
SnapshotGeneratorFactory.createSnapshot(T, Database, SnapshotControl) line: 134
SnapshotGeneratorFactory.has(DatabaseObject, Database) line: 90
SnapshotGeneratorFactory.hasDatabaseChangeLogLockTable(Database) line: 165
MySQLDatabase(AbstractJdbcDatabase).hasDatabaseChangeLogLockTable() line: 865
MySQLDatabase(AbstractJdbcDatabase).checkDatabaseChangeLogLockTable() line: 928
LockServiceImpl.acquireLock() line: 114
LockServiceImpl.waitForLock() line: 80
Liquibase.update(Contexts) line: 170
Liquibase.update(String) line: 162
Loader(SpringLiquibase).performUpdate(Liquibase) line: 332
Loader(SpringLiquibase).afterPropertiesSet() line: 299
Loader.afterPropertiesSet() line: 27
Thanks,
Darren