include-catalog-in-specification

The include-catalog-in-specification parameter is a Boolean that defines whether Liquibase includes the catalog name when determining equality between the compared databases. The default value is false because you may want to compare the objects across two databases even though the catalogs are named differently in different environments.

Uses

If you run the diff command or the diff-changelog command with the include-catalog-in-specification parameter set to true, Liquibase will identify objects using both their object name and the catalog name.

Let’s say you have:

  • database1 and catalog1, which has the table table1
  • database2 and catalog2, which has the table table1

This way, Liquibase shows that there is a difference in the catalog name when executing the diff command with include-catalog-in-specification set to true. For example, an object of catalog1.my_schema.my_table is seen as a different object than catalog2.my_schema.my_table.

However, if you run the diff command and do not specify include-catalog-in-specification, Liquibase will not see any differences and identify only the database objects without checking if the catalog is the same.

Syntax

You can set this parameter in the following ways:

Option Syntax
Liquibase properties file (defaults file)
liquibase.includeCatalogInSpecification: <true|false>
Global flow file argument (example)
stages:
  Default:
    actions:
      - type: liquibase
        command: diff
        globalArgs: { include-catalog-in-specification: "<true|false>" }
Global CLI parameter
liquibase
 --include-catalog-in-specification=<true|false> diff
 --changelog-file=example-changelog.xml

JVM system property (JAVA_OPTS Environment Variable)

JAVA_OPTS=-Dliquibase.includeCatalogInSpecification=<true|false>
Liquibase Environment Variables
LIQUIBASE_INCLUDE_CATALOG_IN_SPECIFICATION=<true|false>

For more information, see Working with Command Parameters.