pro-global-end-delimiter

--pro-global-end-delimiter is a global parameter that lets you specify a default delimiter to use for all changesets. This is useful if you can't use the default delimiter of ;. It is available in Liquibase 4.25.1 and later and requires a valid Liquibase Pro license key to use.

The --pro-global-end-delimiter argument is similar to the endDelimiter attribute for the sql, sqlFile, partiql, and partiqlFile Change Types, but has a global scope.

If you set --pro-global-end-delimiter and do not set endDelimiter, then Liquibase applies the value of --pro-global-end-delimiter to all changesets. If you set a delimiter both ways, Liquibase determines which delimiter to use for a changeset in the following order:

  1. endDelimiter set on a specific changeset, including in rollbackSqlFile (highest precedence)
  2. endDelimiter set in a changelog called by include or includeAll in modifyChangeSets
  3. --pro-global-end-delimiter set globally (lowest precedence)

You can give --pro-global-end-delimiter the highest precedence of all delimiter settings by also using the --pro-global-end-delimiter-prioritized parameter.

Tip: It is a best practice not to use --pro-global-end-delimiter on changesets you are running with a native executor. Native executors handle delimiters natively.

Uses

If you need to deploy SQL using a non-standard delimiter, such as if the SQL you're deploying contains the ; character, you can use --pro-global-end-delimiter to set a custom delimiter across all your changesets. This is easier than manually specifying endDelimiter on every individual changeset. Also, having one central parameter for a delimiter reduces inconsistencies resulting from manual updates to changesets.

Syntax

You can set this parameter in the following ways:

Option Syntax
Liquibase properties file (defaults file)
liquibase.pro.globalEndDelimiter: <string>
Global flow file argument (example)
stages:
  Default:
    actions:
      - type: liquibase
        command: update
        globalArgs: { pro-global-end-delimiter: "<string>" }
Global CLI parameter
liquibase
 --pro-global-end-delimiter=<string> update
 --changelog-file=example-changelog.xml

JVM system property (JAVA_OPTS Environment Variable)

JAVA_OPTS=-Dliquibase.pro.globalEndDelimiter=<string>
Liquibase Environment Variables
LIQUIBASE_PRO_GLOBAL_END_DELIMITER=<string>

For more information, see Working with Command Parameters.

Related links