Orn Arnar
Orn Arnar

Reputation: 131

Liquibase - DB2 AS/400 - generateChangeLog throwing Exception "SYSCAT type *FILE not found"

I am trying to generate a Liquibase change log by running the command generateChangeLog, but I get the following error:

Starting Liquibase at Fri, 20 Apr 2018 14:26:14 GMT (version 3.6.1 
built at 2018-04-11 08:41:04)
Unexpected error running Liquibase: 
liquibase.exception.DatabaseException: 
com.ibm.as400.access.AS400JDBCSQLSyntaxErrorException: [SQL0204] 
REFERENCES in SYSCAT type *FILE not found.
liquibase.exception.LiquibaseException: 
liquibase.command.CommandExecutionException: 
liquibase.exception.DatabaseException: 
liquibase.exception.DatabaseException: 
com.ibm.as400.access.AS400JDBCSQLSyntaxErrorException: [SQL0204] 
REFERENCES in SYSCAT type *FILE not found.
at  
liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog
(CommandLineUtils.java:279)
at liquibase.integration.commandline.Main.doMigration(Main.java:1043)
at liquibase.integration.commandline.Main.run(Main.java:191)
at liquibase.integration.commandline.Main.main(Main.java:129)

My environment is:

DB2 UDB for AS/400 version 07.01.0000 V7R1m0
AS/400 Toolbox for Java JDBC Driver 10.2
liquibase 3.6.1
Java 8 
Maven 3.3.3

Upvotes: 1

Views: 895

Answers (1)

Charles
Charles

Reputation: 23783

syscat.references is not available on Db2 for i. Actually Db2 for i doesn't have a schema named SYSCAT at all.

qsys2.syscstdep seems to be the closest match...

INFORMATION_SCHEMA is the ANSI & ISO standard name for the DB catalog schema. On Db2 for i, it is an alias for QSYS2.

Edit
From the comment by @jmarkmurphy on the OP, it appears there's an Db2 for i Liquibase extension. I don't know for sure, but I'd suspect that installing that would redirect the query to the correct Db2 for i schema & table.

Upvotes: 4

Related Questions