Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error running generateChangeLog #31

Open
justinataviture opened this issue Jan 11, 2021 · 0 comments
Open

Error running generateChangeLog #31

justinataviture opened this issue Jan 11, 2021 · 0 comments

Comments

@justinataviture
Copy link

justinataviture commented Jan 11, 2021

I'm getting this error trying to run generateChangeLog for the first time.

FINE [liquibase.diff] Cannot get object dependencies: Error executing SQL WITH RECURSIVE preference AS ( SELECT 10 AS max_depth -- The deeper the recursion goes, the slower it performs. , 16384 AS min_oid -- user objects only , '^(londiste|pgq|pg_toast)'::text AS schema_exclusion , '^pg_(conversion|language|ts_(dict|template))'::text AS class_exclusion , '{"SCHEMA":"00", "TABLE":"01", "CONSTRAINT":"02", "DEFAULT":"03", "INDEX":"05", "SEQUENCE":"06", "TRIGGER":"07", "FUNCTION":"08", "VIEW":"10", "MVIEW":"11", "FOREIGN":"12"}'::json AS type_ranks), dependency_pair AS ( WITH relation_object AS ( SELECT oid, oid::regclass::text AS object_name FROM pg_class ) SELECT DISTINCT substring(pg_identify_object(classid, objid, 0)::text, E'(\\w+?)\\.') as referenced_schema_name, CASE classid WHEN 'pg_attrdef'::regclass THEN (SELECT attname FROM pg_attrdef d JOIN pg_attribute c ON (c.attrelid,c.attnum)=(d.adrelid,d.adnum) WHERE d.oid = objid) WHEN 'pg_cast'::regclass THEN (SELECT concat(castsource::regtype::text, ' AS ', casttarget::regtype::text,' WITH ', castfunc::regprocedure::text) FROM pg_cast WHERE oid = objid) WHEN 'pg_class'::regclass THEN rel.object_name WHEN 'pg_constraint'::regclass THEN (SELECT conname FROM pg_constraint WHERE oid = objid) WHEN 'pg_extension'::regclass THEN (SELECT extname FROM pg_extension WHERE oid = objid) WHEN 'pg_namespace'::regclass THEN (SELECT nspname FROM pg_namespace WHERE oid = objid) WHEN 'pg_opclass'::regclass THEN (SELECT opcname FROM pg_opclass WHERE oid = objid) WHEN 'pg_operator'::regclass THEN (SELECT oprname FROM pg_operator WHERE oid = objid) WHEN 'pg_opfamily'::regclass THEN (SELECT opfname FROM pg_opfamily WHERE oid = objid) WHEN 'pg_proc'::regclass THEN objid::regprocedure::text WHEN 'pg_rewrite'::regclass THEN (SELECT ev_class::regclass::text FROM pg_rewrite WHERE oid = objid) WHEN 'pg_trigger'::regclass THEN (SELECT tgname FROM pg_trigger WHERE oid = objid) WHEN 'pg_type'::regclass THEN objid::regtype::text ELSE objid::text END AS REFERENCED_NAME, substring(pg_identify_object(refclassid, refobjid, 0)::text, E'(\\w+?)\\.') as referencing_schema_name, CASE refclassid WHEN 'pg_namespace'::regclass THEN (SELECT nspname FROM pg_namespace WHERE oid = refobjid) WHEN 'pg_class'::regclass THEN rrel.object_name WHEN 'pg_opfamily'::regclass THEN (SELECT opfname FROM pg_opfamily WHERE oid = refobjid) WHEN 'pg_proc'::regclass THEN refobjid::regprocedure::text WHEN 'pg_type'::regclass THEN refobjid::regtype::text ELSE refobjid::text END AS REFERENCING_NAME FROM pg_depend dep LEFT JOIN relation_object rel ON rel.oid = dep.objid LEFT JOIN relation_object rrel ON rrel.oid = dep.refobjid, preference WHERE deptype = ANY('{n,a}') AND objid >= preference.min_oid AND (refobjid >= preference.min_oid OR refobjid = 2200) -- need public schema as root node AND classid::regclass::text !~ preference.class_exclusion AND refclassid::regclass::text !~ preference.class_exclusion AND COALESCE(SUBSTRING(objid::regclass::text, E'^(\\\\w+)\\\\.'),'') !~ preference.schema_exclusion AND COALESCE(SUBSTRING(refobjid::regclass::text, E'^(\\\\w+)\\\\.'),'') !~ preference.schema_exclusion GROUP BY classid, objid, refclassid, refobjid, deptype, rel.object_name, rrel.object_name ) select referenced_schema_name, (CASE WHEN position('.' in referenced_name) >0 THEN substring(referenced_name from position('.' in referenced_name)+1 for length(referenced_name)) ELSE referenced_name END) AS referenced_name, referencing_schema_name, (CASE WHEN position('.' in referencing_name) >0 THEN substring(referencing_name from position('.' in referencing_name)+1 for length(referencing_name)) ELSE referencing_name END) AS referencing_name from dependency_pair where REFERENCED_NAME != REFERENCING_NAME AND ( REFERENCED_NAME like 'datawarehouse.%' OR REFERENCED_NAME NOT LIKE '%.%') AND referencing_schema_name is not null and referencing_name is not null: ERROR: WITH RECURSIVE is not supported [2021-01-11 14:50:16] FINE [liquibase.executor] Executing with the 'jdbc' executor [2021-01-11 14:50:16] FINE [liquibase.executor] 0 row(s) affected Unexpected error running Liquibase: java.lang.RuntimeException: java.lang.RuntimeException: liquibase.exception.UnexpectedLiquibaseException: com.amazon.redshift.util.RedshiftException: ERROR: current transaction is aborted, commands ignored until end of transaction block For more information, please use the --logLevel flag [2021-01-11 14:50:16] SEVERE [liquibase.integration] Unexpected error running Liquibase: java.lang.RuntimeException: java.lang.RuntimeException: liquibase.exception.UnexpectedLiquibaseException: com.amazon.redshift.util.RedshiftException: ERROR: current transaction is aborted, commands ignored until end of transaction block liquibase.exception.LiquibaseException: liquibase.command.CommandExecutionException: java.lang.RuntimeException: java.lang.RuntimeException: liquibase.exception.UnexpectedLiquibaseException: com.amazon.redshift.util.RedshiftException: ERROR: current transaction is aborted, commands ignored until end of transaction block at liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:251) at liquibase.integration.commandline.Main.doMigration(Main.java:1519) at liquibase.integration.commandline.Main$1.lambda$run$0(Main.java:361) 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.Scope.child(Scope.java:222) at liquibase.Scope.child(Scope.java:226) at liquibase.integration.commandline.Main$1.run(Main.java:360) at liquibase.integration.commandline.Main$1.run(Main.java:193) at liquibase.Scope.child(Scope.java:169) at liquibase.Scope.child(Scope.java:145) at liquibase.integration.commandline.Main.run(Main.java:193) at liquibase.integration.commandline.Main.main(Main.java:156) Caused by: liquibase.command.CommandExecutionException: java.lang.RuntimeException: java.lang.RuntimeException: liquibase.exception.UnexpectedLiquibaseException: com.amazon.redshift.util.RedshiftException: ERROR: current transaction is aborted, commands ignored until end of transaction block at liquibase.command.AbstractCommand.execute(AbstractCommand.java:24) at liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:249) ... 14 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: liquibase.exception.UnexpectedLiquibaseException: com.amazon.redshift.util.RedshiftException: ERROR: current transaction is aborted, commands ignored until end of transaction block at liquibase.diff.output.changelog.DiffToChangeLog.print(DiffToChangeLog.java:203) at liquibase.diff.output.changelog.DiffToChangeLog.print(DiffToChangeLog.java:85) at liquibase.command.core.GenerateChangeLogCommand.run(GenerateChangeLogCommand.java:74) at liquibase.command.AbstractCommand.execute(AbstractCommand.java:19) ... 15 more Caused by: java.lang.RuntimeException: liquibase.exception.UnexpectedLiquibaseException: com.amazon.redshift.util.RedshiftException: ERROR: current transaction is aborted, commands ignored until end of transaction block at liquibase.diff.output.changelog.DiffToChangeLog$1.run(DiffToChangeLog.java:186) 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.diff.output.changelog.DiffToChangeLog.print(DiffToChangeLog.java:127) ... 18 more Caused by: liquibase.exception.UnexpectedLiquibaseException: com.amazon.redshift.util.RedshiftException: ERROR: current transaction is aborted, commands ignored until end of transaction block at liquibase.diff.output.changelog.core.MissingDataExternalFileChangeGenerator.fixMissing(MissingDataExternalFileChangeGenerator.java:173) at liquibase.diff.output.changelog.ChangeGeneratorChain.fixMissing(ChangeGeneratorChain.java:48) at liquibase.diff.output.changelog.ChangeGeneratorFactory.fixMissing(ChangeGeneratorFactory.java:95) at liquibase.diff.output.changelog.DiffToChangeLog.generateChangeSets(DiffToChangeLog.java:302) at liquibase.diff.output.changelog.DiffToChangeLog.printNew(DiffToChangeLog.java:226) at liquibase.diff.output.changelog.DiffToChangeLog$1.run(DiffToChangeLog.java:133) ... 23 more Caused by: com.amazon.redshift.util.RedshiftException: ERROR: current transaction is aborted, commands ignored until end of transaction block at com.amazon.redshift.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2576) at com.amazon.redshift.core.v3.QueryExecutorImpl.processResultsOnThread(QueryExecutorImpl.java:2250) at com.amazon.redshift.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1878) at com.amazon.redshift.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1870) at com.amazon.redshift.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:368) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeInternal(RedshiftStatementImpl.java:509) at com.amazon.redshift.jdbc.RedshiftStatementImpl.execute(RedshiftStatementImpl.java:430) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeWithFlags(RedshiftStatementImpl.java:371) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeCachedSql(RedshiftStatementImpl.java:357) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeWithFlags(RedshiftStatementImpl.java:334) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeQuery(RedshiftStatementImpl.java:265) at liquibase.diff.output.changelog.core.MissingDataExternalFileChangeGenerator.fixMissing(MissingDataExternalFileChangeGenerator.java:67) ... 28 more Caused by: com.amazon.redshift.util.RedshiftException: ERROR: WITH RECURSIVE is not supported at com.amazon.redshift.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2576) at com.amazon.redshift.core.v3.QueryExecutorImpl.processResultsOnThread(QueryExecutorImpl.java:2250) at com.amazon.redshift.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1878) at com.amazon.redshift.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1870) at com.amazon.redshift.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:368) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeInternal(RedshiftStatementImpl.java:509) at com.amazon.redshift.jdbc.RedshiftStatementImpl.execute(RedshiftStatementImpl.java:430) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeWithFlags(RedshiftStatementImpl.java:371) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeCachedSql(RedshiftStatementImpl.java:357) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeWithFlags(RedshiftStatementImpl.java:334) at com.amazon.redshift.jdbc.RedshiftStatementImpl.executeQuery(RedshiftStatementImpl.java:265) at liquibase.executor.jvm.JdbcExecutor$QueryStatementCallback.doInStatement(JdbcExecutor.java:461) at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:82) at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:168) at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:176) at liquibase.executor.jvm.JdbcExecutor.queryForList(JdbcExecutor.java:241) at liquibase.executor.jvm.JdbcExecutor.queryForList(JdbcExecutor.java:236) at liquibase.diff.output.changelog.DiffToChangeLog.addDependencies(DiffToChangeLog.java:653) at liquibase.diff.output.changelog.DiffToChangeLog.sortObjects(DiffToChangeLog.java:390) at liquibase.diff.output.changelog.DiffToChangeLog.sortMissingObjects(DiffToChangeLog.java:358) at liquibase.diff.output.changelog.DiffToChangeLog.generateChangeSets(DiffToChangeLog.java:299) ... 25 more

I've tried this running 4.2.1 and 4.2.2. This is my first time running liquibase so there's a chance I've got something misconfigured. I've copied the jar files into liquibase/lib and I'm using a properties file to pass in the following arguments (sanitized):
url=jdbc:redshift://*** username=*** password=*** strict=true changeLogFile=mychangelog.redshift.sql changeSetAuthor=JPounders dataOutputDirectory=output driver=com.amazon.redshift.jdbc.Driver #classpath=redshift-jdbc42-2.0.0.1/redshift-jdbc42-2.0.0.1.jar classpath=liquibase-redshift-4.2.2.jar logLevel=debug #liquibase.hub.ApiKey=*** referenceUrl=jdbc:redshift://*** referenceDriver=com.amazon.redshift.jdbc42.Driver referenceUsername=*** referencePassword=*** defaultCatalogName=*** defaultSchemaName=*** includeSchema=true includeTablespace=true liquibaseCatalogName=*** liquibaseSchemaName=public #outputDefaultCatalog=true #outputDefaultSchema=true #schemas=***,***,*** #diffColumnOrder=true

┆Issue is synchronized with this Jira Bug by Unito

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant