At the company I work, we are using Liquibase as well as Flyway. After upgrading from an older liquibase version we now run into license issues when we run the liquibase dump data command. I have had a look at the pro vs community features and cannot see that we are using any pro features. Our database schemas have tables, constraints, and sequences. No stored procedures, no triggers, etc. Below is the output from a new greenfield project, there are just 5 tables in the schema. There is no reason why this is not working as far as I can see.
This works:
java -jar liquibase-core-3.5.5.jar --logLevel=debug --driver=oracle.jdbc.OracleDriver --classpath=ojdbc8-12.2.0.1.jar --changeLogFile=db.changelog.xml --url="jdbc:oracle:thin:@localhost:1521:XE" --username=TEST --password=TEST --diffTypes="data" generateChangeLog
Output:
DEBUG 5/5/21, 12:55 PM: liquibase: Connected to TEST@jdbc:oracle:thin:@localhost:1521:XE
DEBUG 5/5/21, 12:55 PM: liquibase: Setting auto commit to false from true
DEBUG 5/5/21, 12:55 PM: liquibase: Computed checksum for 1620212106304 as 71ccb0e4115d9cd80adbc25b483e3c69
INFO 5/5/21, 12:55 PM: liquibase: Can not use class liquibase.serializer.core.yaml.YamlChangeLogSerializer as a Liquibase service because org.yaml.snakeyaml.representer.Representer is not in the classpath
INFO 5/5/21, 12:55 PM: liquibase: Can not use class liquibase.serializer.core.json.JsonChangeLogSerializer as a Liquibase service because org.yaml.snakeyaml.representer.Representer is not in the classpath
INFO 5/5/21, 12:55 PM: liquibase: db.changelog.xml does not exist, creating
DEBUG 5/5/21, 12:55 PM: liquibase: MissingObjectChangeGenerator type order: liquibase.structure.core.Catalog liquibase.structure.core.Schema liquibase.structure.core.Table liquibase.structure.core.Data liquibase.structure.core.ForeignKey liquibase.structure.core.Index liquibase.structure.core.PrimaryKey liquibase.structure.core.View
DEBUG 5/5/21, 12:55 PM: liquibase: UnexpectedObjectChangeGenerator type order: liquibase.structure.core.Catalog liquibase.structure.core.Data liquibase.structure.core.Schema liquibase.structure.core.View
liquibase.structure.core.Column liquibase.structure.core.Table liquibase.structure.core.Column liquibase.structure.core.PrimaryKey
DEBUG 5/5/21, 12:55 PM: liquibase: ChangedObjectChangeGenerator type order: liquibase.structure.core.Catalog liquibase.structure.core.Data liquibase.structure.core.Schema liquibase.structure.core.Table liquibase.structure.core.View
Liquibase 'generateChangeLog' Successful
The change log file is generated, and the command complains about some dependencies but that is alright, we just need a data dump.
Now running the same command against liquibase version 4.3.4:
java -jar liquibase-core-4.3.4.jar --logLevel=debug --driver=oracle.jdbc.OracleDriver --classpath=ojdbc8-12.2.0.1.jar --changeLogFile=db.changelog.xml --url="jdbc:oracle:thin:@localhost:1521:XE" --username=TEST --password=TEST --diffTypes="data" generateChangeLog
Output:
Starting Liquibase at 12:53:34 (version 4.3.4 #55 built at 2021-04-19 20:18+0000)
[2021-05-05 12:53:34] FINE [liquibase.integration] Adding 'file:/C:/Users/.../dev/test/config/schema/ojdbc8-12.2.0.1.jar' to the Java classpath.
[2021-05-05 12:53:34] FINE [liquibase.integration] Liquibase Hub URL: https://hub.liquibase.com
[2021-05-05 12:53:34] FINE [liquibase.integration] Liquibase Hub Mode: all
[2021-05-05 12:53:34] FINE [liquibase.resource] Adding path C:\Users\...\dev\test\config\schema\. to resourceAccessor liquibase.resource.FileSystemResourceAccessor
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.CockroachDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.DB2Database
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.Db2zDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.DerbyDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.Firebird3Database
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.FirebirdDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.H2Database
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.HsqlDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.InformixDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.Ingres9Database
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.MSSQLDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.MariaDBDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.MockDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.MySQLDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.OracleDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.PostgresDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.SQLiteDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.SybaseASADatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.SybaseDatabase
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.Database instance liquibase.database.core.UnsupportedDatabase
[2021-05-05 12:53:34] FINE [liquibase.database] Properties:
[2021-05-05 12:53:34] FINE [liquibase.database] Key:'password' Value:'**********'
[2021-05-05 12:53:34] FINE [liquibase.database] Key:'user' Value:'TEST'
[2021-05-05 12:53:34] FINE [liquibase.database] Connecting to the URL:'jdbc:oracle:thin:@localhost:1521:XE' using driver:'oracle.jdbc.OracleDriver'
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.DatabaseConnection instance liquibase.database.jvm.JdbcConnection
[2021-05-05 12:53:34] FINE [liquibase.servicelocator] Loaded liquibase.database.DatabaseConnection instance com.datical.liquibase.ext.database.jvm.ProJdbcConnection
[2021-05-05 12:53:35] FINE [liquibase.database] Connection has been created
[2021-05-05 12:53:35] FINE [liquibase.database] Connected to TEST@jdbc:oracle:thin:@localhost:1521:XE
[2021-05-05 12:53:35] FINE [liquibase.database] Setting auto commit to false from true
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Catalog
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Column
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Data
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.ForeignKey
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Index
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.PrimaryKey
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Schema
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Sequence
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.StoredProcedure
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Table
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.UniqueConstraint
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.View
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.appdba.synonym.Synonym
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.checkconstraint.CheckConstraint
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.databasepackage.DatabasePackage
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.databasepackage.DatabasePackageBody
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.function.Function
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.trigger.Trigger
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Catalog
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Column
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Data
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.ForeignKey
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Index
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.PrimaryKey
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Schema
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Sequence
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.StoredProcedure
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.Table
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.UniqueConstraint
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance liquibase.structure.core.View
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.appdba.synonym.Synonym
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.checkconstraint.CheckConstraint
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.databasepackage.DatabasePackage
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.databasepackage.DatabasePackageBody
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.function.Function
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.structure.DatabaseObject instance com.datical.liquibase.ext.storedlogic.trigger.Trigger
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.DeactivateChangeLogCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.DiffCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.DiffToChangeLogCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.DropAllCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.ExecuteSqlCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.GenerateChangeLogCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.HistoryCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.RegisterChangeLogCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.SnapshotCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.command.core.SyncHubCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance liquibase.sdk.convert.ConvertCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance com.datical.liquibase.ext.command.FormattedDiffCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance com.datical.liquibase.ext.command.RollbackOneChangeSetCommand
[2021-05-05 12:53:35] FINE [liquibase.servicelocator] Loaded liquibase.command.LiquibaseCommand instance com.datical.liquibase.ext.command.RollbackOneUpdateCommand
Unexpected error running Liquibase: Unknown reason
For more information, please use the --logLevel flag
[2021-05-05 12:53:35] SEVERE [liquibase.integration] Unexpected error running Liquibase: Unknown reason
java.lang.NullPointerException
at com.datical.liquibase.ext.command.RollbackOneChangeSetCommand.getPriority(Unknown Source)
at liquibase.command.CommandFactory$1.compare(CommandFactory.java:49)
at liquibase.command.CommandFactory$1.compare(CommandFactory.java:46)
at java.base/java.util.TimSort.binarySort(Unknown Source)
at java.base/java.util.TimSort.sort(Unknown Source)
at java.base/java.util.Arrays.sort(Unknown Source)
at java.base/java.util.ArrayList.sort(Unknown Source)
at java.base/java.util.Collections.sort(Unknown Source)
at liquibase.command.CommandFactory.getCommand(CommandFactory.java:55)
at liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:237)
at liquibase.integration.commandline.Main.doMigration(Main.java:1542)
at liquibase.integration.commandline.Main$1.lambda$run$0(Main.java:367)
at liquibase.Scope.lambda$child$0(Scope.java:160)
at liquibase.Scope.child(Scope.java:169)
at liquibase.Scope.child(Scope.java:159)
at liquibase.Scope.child(Scope.java:138)
at liquibase.integration.commandline.Main$1.run(Main.java:366)
at liquibase.integration.commandline.Main$1.run(Main.java:196)
at liquibase.Scope.child(Scope.java:169)
at liquibase.Scope.child(Scope.java:145)
at liquibase.integration.commandline.Main.run(Main.java:196)
at liquibase.integration.commandline.Main.main(Main.java:158)
Changing --diffTypes to just “tables” does not work either, this leads me to believe that this is a bug. It must be possible to do a plain data dump with the latest Liquibase Open Source Version just as it did with previous versions (at least 3.5.5 which we have used for a long time).
Best regards,
Steinard