What are parameters?

Last published July 28, 2025

Parameters allow you to specify additional behavior when running Liquibase Commands. They may take Booleans, strings, integers, or other types as values. You can:

- Enter properties as command-line arguments - Create connection profiles or specify other parameters in the Liquibase properties file - Specify global or command arguments in Liquibase flow file actions - Use the JAVA_OPTS variable to pass custom settings to the Java Virtual Machine (JVM) that runs Liquibase - Use environment variables to securely pass sensitive data

Configuration hierarchy

Liquibase supports the setting of properties from the following locations, from highest to lowest priority:

  1. Liquibase flow file stage parameters

  2. Liquibase flow file global parameters

  3. Command-line arguments

  4. ServletConfig initialization parameters

  5. ServletContext initialization parameters

  6. Java system properties

  7. OS environment variables

  8. Configuration data, such as piped standard input, defaults files, and connection profiles and other properties stored in the Liquibase properties file.

For example, command-line arguments override ServletConfig and ServletContext initialization parameters, Java system properties, OS environment variables, and configuration data, while OS environment variables override configuration data only.

The following tables describe the Liquibase parameters that are available as global or command-specific options. For more information, run liquibase --help from the command prompt. To learn how to use parameters in more detail, see Working with Command Parameters.

Global

You can use global parameters with any Liquibase command.

Note: Syntax for each parameter is specified in kebab-case (CLI and flow file), camelCase (properties file and JAVA_OPTS), and MACRO_CASE (environment variable).

Tip: For best results, specify all commands and parameters in the --kebab-case format in the CLI. If your preference is camelCase, it also works in the CLI.

Global parameter options

Syntax

Description

-h --help

Opens the help menu. CLI-only.

-v --version

Print version information. CLI-only.

Mongo shell integration arguments

Parameter

Type

Description

--mongosh-args=<string>

String

Defines extra arguments to pass to the mongoshexecutable. For more information, see Mongosh documentation.

Note: The delimiter for arguments is a space " ". Do not use a comma "," or semicolon ";".

--mongosh-executor=<string>

String

Name of a custom executor you can specify.

--mongosh-keep-temp=<true|false>

Boolean

Indicates whether or not to keep a temporary SQL file after the execution of Mongosh. If true, the file is not deleted. This setting is not required to keep the temporary file, only create-spool is. Default: false.

--mongosh-keep-temp-name=<string>

String

Indicates the name of a temporary SQL file after the execution of Mongosh. If no file name is specified, a name is automatically generated.

--mongosh-keep-temp-path=<string>

String

Specify the path in which to store the temporary files after the execution of Mongosh. If not specified, the files will be stored in the system's temp directory.

--mongosh-log-file=<string>

String

Log file for Mongo shell output.

--mongosh-path=<string>

String

Path to mongosh executable. For example:

Linux: /usr/bin/mongosh or /usr/local/bin/mongosh

Windows: C:\Program Files\MongoDB\Server\6.0\bin\mongosh.exe

--mongosh-timeout=<int>

Integer

Indicates seconds to wait for the mongosh timeout. -1 disables the timeout. 0 returns an error. Default: 1800 (30 minutes).

Configuration

Note: Before Liquibase 4.25.0, the following configuration properties can only be set as operating system environment variables (such as LIQUIBASE_HOME). In Liquibase 4.25.0+, you can set these with the JAVA_OPTS Environment Variable (such as liquibase.home) like other Liquibase parameters on this page.

Syntax (JAVA_OPTS, ENV_VAR)

Type

Description

liquibase.home LIQUIBASE_HOME

String

The directory that points to the Liquibase installation location.

liquibase.launcher.debug LIQUIBASE_LAUNCHER_DEBUG

String

Enables the Liquibase debug mode, which produces more log output and allows the user to debug their database.

liquibase.launcher.parent.classloader LIQUIBASE_LAUNCHER_PARENT_CLASSLOADER

String

The classloader that runs Liquibase via either system or thread. This variable defaults to system.

Command parameters

You can use command parameters with only certain commands or groups of commands.

Note: Syntax for each parameter is specified in kebab-case (CLI and flow file), camelCase (properties file and JAVA_OPTS), and MACRO_CASE (environment variable).

Tip: For best results, specify all commands and parameters in the --kebab-case format in the CLI. If your preference is camelCase, it also works in the CLI.

Note: It is best practice only to use alphanumeric characters and underscores in your liquibase-schema-name, because your database may not support hyphens and other special characters. If you must use hyphens, you must escape the lines containing hyphens. Many databases, such as PostgreSQL, MySQL, and SQLite support using quotes to escape characters. For example, "schemas-with-a-hyphen-or-dash-symbol-in-the-name". You'll need to refer to the documentation for your DBMS to determine if it supports quoted identifiers. You do not need to use quoted identifiers if you are using objectQuotingStrategy="QUOTE_ALL_OBJECTS" at the changelog/changeset level.

Command parameter options

For more information, see Substituting Properties in Changelogs.

Syntax

Description

-D

CLI only. Pass a name/value pair for substitution in the changelog(s). Pass as -D<property.name>=<property.value>. On Windows, surround the property name in quotation marks if it contains a dot. For example:-D"property.name"=value.