include-catalog-in-specification parameter 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.
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:
catalog1, which has the table
catalog2, which has the table
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
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.
You can set
include-catalog-in-specification in four ways:
- In the Liquibase properties file
- As a global parameter in the CLI
- As a JVM system property
- As an environment variable (Liquibase Pro)
Liquibase properties file parameter
In Liquibase 4.1+, add the following to Liquibase properties file:
CLI global parameter
In your command line, use a global parameter with a single Liquibase command:
Java system property
In your command line, use the JAVA_OPTS Environment Variable to set a JVM system property:
Note: To use a Liquibase command alongside
&& liquibase <command> to the end of your input.
Environment variable (Liquibase Pro)
In Liquibase Pro, set an environment variable:
Note: These environment variable commands only apply to the current shell. If you need to pass an environment variable to a child process without affecting the parent process, you can use the
export command on Mac/Linux or the
setx command on Windows.