2
votes

Running

liquibase generateChangeLog > genChgLog.txt

with the following as my liquibase.properties,

classpath=C:\Program Files (x86)\MySQL\MySQL Connector J\mysql-connector-java-8.0.16.jar driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://{thisisnottheproblem,Iguarantee} username={it'sright} password={it'sright} referenceUrl=jdbc:mysql://{thisisnottheproblem,Iguarantee} referenceUsername={it'sright} referencePassword={it'sright} changeLogFile=databaseChangeLogSchema.mysql.sql diffTypes=tables,columns,views,primaryKeys,indexes,foreignKeys,sequences,data logLevel=debug

I am consistently getting the likes of this, output to the genChgLog.txt file:

Starting Liquibase at Wed, 15 May 2019 15:37:32 CDT (version 3.6.3 built at 2019-01-29 11:34:48) Unexpected error running Liquibase: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Unknown table 'TMP_CTAWHBNCQVQMHSUU' [Failed SQL: DROP TABLE TMP_CTAWHBNCQVQMHSUU] liquibase.exception.LiquibaseException: liquibase.command.CommandExecutionException: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Unknown table 'TMP_CTAWHBNCQVQMHSUU' [Failed SQL: DROP TABLE TMP_CTAWHBNCQVQMHSUU] at liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:279) at liquibase.integration.commandline.Main.doMigration(Main.java:1058) at liquibase.integration.commandline.Main.run(Main.java:199) at liquibase.integration.commandline.Main.main(Main.java:137) Caused by: liquibase.command.CommandExecutionException: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Unknown table 'TMP_CTAWHBNCQVQMHSUU' [Failed SQL: DROP TABLE TMP_CTAWHBNCQVQMHSUU] at liquibase.command.AbstractCommand.execute(AbstractCommand.java:24) at liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:277) ... 3 common frames omitted Caused by: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Unknown table 'TMP_CTAWHBNCQVQMHSUU' [Failed SQL: DROP TABLE TMP_CTAWHBNCQVQMHSUU] at liquibase.snapshot.jvm.ForeignKeySnapshotGenerator.snapshotObject(ForeignKeySnapshotGenerator.java:223) at liquibase.snapshot.jvm.JdbcSnapshotGenerator.snapshot(JdbcSnapshotGenerator.java:66) . . . at liquibase.command.core.GenerateChangeLogCommand.run(GenerateChangeLogCommand.java:46) at liquibase.command.AbstractCommand.execute(AbstractCommand.java:19) ... 4 common frames omitted Caused by: liquibase.exception.DatabaseException: Unknown table 'TMP_CTAWHBNCQVQMHSUU' [Failed SQL: DROP TABLE TMP_CTAWHBNCQVQMHSUU] at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:356) at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:57) at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:125) at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:109) at liquibase.database.core.MySQLDatabase.hasBugJdbcConstraintsDeferrable(MySQLDatabase.java:294) at liquibase.snapshot.jvm.ForeignKeySnapshotGenerator.snapshotObject(ForeignKeySnapshotGenerator.java:188) ... 25 common frames omitted Caused by: java.sql.SQLSyntaxErrorException: Unknown table 'TMP_CTAWHBNCQVQMHSUU' at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:782) at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:666) at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:352) ... 30 common frames omitted

For more information, please use the --logLevel flag

Each time I run it, it changes the name of the phantom TMP_ tables (although they always begin with TMP_ and then a string of apparently random characters). I don't know where it's getting these non-existent TMP_ tables from that it wants to drop, but...is there some way to make it only attempt to drop them if they exist? Of potential note: it works fine if my only diffType is "tables", "data", or if I have both "tables" and "data" as diffTypes...otherwise, failure...

1

1 Answers

1
votes

I don't have all the details, but it appears this can happen when using a database user with insufficient permissions. I talked with someone who said that using a root level database user fixed this issue for them.