Liquibase Parameters

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

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), camelCase (properties file), and ENVAR_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.

Info

Syntax Description
-h
--help
Opens the help menu. CLI-only.
-v
--version
Print version information. CLI-only.

General

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--always-drop-instead-of-replace
liquibase.alwaysDropInsteadOfReplace
LIQUIBASE_ALWAYS_DROP_INSTEAD_OF_REPLACE
Boolean If true, drops and recreates a view instead of replacing it. Only affects PostgreSQL databases. Default: false. See always-drop-instead-of-replace.
--always-override-stored-logic-schema
liquibase.alwaysOverrideStoredLogicSchema
LIQUIBASE_ALWAYS_OVERRIDE_STORED_LOGIC_SCHEMA
String When generating SQL for createProcedure, the parameter defines whether the procedure schema should be forced to the default schema if no schemaName attribute is set. Default: false. See always-override-stored-logic-schema.
--auto-reorg
liquibase.autoReorg
LIQUIBASE_AUTO_REORG
Boolean Defines whether Liquibase automatically reorganizes table objects stored on disk when you modify a DB2 database. Default: true. See auto-reorg.
--changelog-lock-poll-rate
liquibase.changelogLockPollRate
LIQUIBASE_CHANGELOG_LOCK_POLL_RATE
Integer Specifies the number of seconds Liquibase waits to check if a changelog lock has been released. Default: 10. See changelog-lock-poll-rate.
--changelog-lock-wait-time-in-minutes
liquibase.changelogLockWaitTimeInMinutes
LIQUIBASE_CHANGELOG_LOCK_WAIT_TIME_IN_MINUTES
Integer Specifies the amount of time Liquibase waits for a locked database to become available. Default: 5. See changelog-lock-wait-time-in-minutes.
--changelog-parse-mode
liquibase.changelogParseMode
LIQUIBASE_CHANGELOG_PARSE_MODE
String Configures how to handle unknown fields in changelog files. Possible values: STRICT (causes parsing to fail) and LAX (continues with the parsing). Default: STRICT.
--classpath
liquibase.classpath
LIQUIBASE_CLASSPATH
String Specifies additional classpath entries to use.
--convert-data-types
liquibase.convertDataTypes
LIQUIBASE_CONVERT_DATA_TYPES
Boolean Allows Liquibase to convert data types such as int, bigint, timestamp, and clob to the standard data types. Default: true. See convert-data-types.
--database-changelog-lock-table-name
liquibase.databaseChangelogLockTableName
LIQUIBASE_DATABASE_CHANGELOG_LOCK_TABLE_NAME
String Specifies the name of a table to use for tracking concurrent Liquibase usage. Default: DATABASECHANGELOGLOCK.
--database-changelog-table-name
liquibase.databaseChangelogTableName
LIQUIBASE_DATABASE_CHANGELOG_TABLE_NAME
String Specifies the name of a table to use for a tracking change history. Default: DATABASECHANGELOG.
--database-class
liquibase.databaseClass
LIQUIBASE_DATABASE_CLASS
String Specifies the class to use for a Database implementation. See database-class.
--ddl-lock-timeout
liquibase.ddlLockTimeout
LIQUIBASE_DDL_LOCK_TIMEOUT
Integer Indicates the number of seconds a DDL command should wait for the locks to become available before throwing the resource busy error message. This parameter applies only to Oracle databases.
--defaults-file
liquibase.defaultsFile
LIQUIBASE_DEFAULTS_FILE
String Specifies the file with default Liquibase properties. Default: liquibase.properties.
--diff-column-order
liquibase.diffColumnOrder
LIQUIBASE_DIFF_COLUMN_ORDER
Boolean Defines whether Liquibase compares the column order in a diff operation. Default: true. See diff-column-order.
--driver
liquibase.driver
LIQUIBASE_DRIVER
String Specifies the database driver class. See driver.
--driver-properties-file
liquibase.driverPropertiesFile
LIQUIBASE_DRIVER_PROPERTIES_FILE
String Specifies a file with driver-specific properties.
--duplicate-file-mode
liquibase.duplicateFileMode
LIQUIBASE_DUPLICATE_FILE_MODE
String How to handle multiple files being found in the search path that have duplicate paths. Options are WARN (log warning and choose one at random) or ERROR (fail current operation). Default: ERROR.
--error-on-circular-include-all
liquibase.errorOnCircularIncludeAll
LIQUIBASE_ERROR_ON_CIRCULAR_INCLUDE_ALL
Boolean Throw an error if Liquibase detects that an includeAll will cause a circular reference (and thus a changelog parse error). Default: true. See error-on-circular-include-all.
--file-encoding
liquibase.fileEncoding
LIQUIBASE_FILE_ENCODING
String Encoding to use when reading files. Valid values include: UTF-8, UTF-16, UTF-16BE, UTF-16LE, US-ASCII, or OS to use the system configured encoding. Default: UTF-8.
--generate-changeset-created-values
liquibase.generateChangesetCreatedValues
LIQUIBASE_GENERATE_CHANGESET_CREATED_VALUES
Boolean Determines whether Liquibase adds timestamps to changesets in the changelog it generates when you run the diff-changelog or generate-changelog commands. Default: false. See generate-changeset-created-values.
--generated-changeset-ids-contains-description
liquibase.generatedChangesetIdsContainsDescription
LIQUIBASE_GENERATED_CHANGESET_IDS_CONTAINS_DESCRIPTION
String Determines whether Liquibase includes changeset descriptions in changelogs generated with the generate-changelog command in addition to changeset IDs. Default: false. See generated-changeset-ids-contains-description.
--headless
liquibase.headless
LIQUIBASE_HEADLESS
String Forces Liquibase to run without access to the console for input and output. Default: false. See headless.
--include-catalog-in-specification
liquibase.includeCatalogInSpecification
LIQUIBASE_INCLUDE_CATALOG_IN_SPECIFICATION
Boolean Defines whether Liquibase includes the catalog name when determining equality between the compared databases. Default: false. See include-catalog-in-specification.
--include-system-classpath
liquibase.includeSystemClasspath
LIQUIBASE_INCLUDE_SYSTEM_CLASSPATH
Boolean Defines whether Liquibase includes the system classpath when resolving classes at runtime. Default: true. See include-system-classpath.
--license-key
liquibase.licenseKey
LIQUIBASE_LICENSE_KEY
String Specifies Liquibase Pro license key that allows using all the functionality of Liquibase Open Source and Liquibase Pro. Deprecated: liquibase.pro.licenseKey. See How to Apply Your Liquibase Pro License Key.
--liquibase-catalog-name
liquibase.liquibaseCatalogName
LIQUIBASE_LIQUIBASE_CATALOG_NAME
String Specifies the catalog to use for Liquibase objects. See liquibase-catalog-name.
--liquibase-schema-name
liquibase.liquibaseSchemaName
LIQUIBASE_LIQUIBASE_SCHEMA_NAME
String Specifies the schema to use for the creation of Liquibase objects, like the DATABASECHANGELOG and DATABASECHANGELOGLOCK tracking tables. See liquibase-schema-name.
--liquibase-tablespace-name
liquibase.liquibaseTablespaceName
LIQUIBASE_LIQUIBASE_TABLESPACE_NAME
String Specifies the tablespace Liquibase uses to store objects that are being deployed to your database. See liquibase-tablespace-name.
--log-channels
liquibase.logChannels
LIQUIBASE_LOG_CHANNELS
String Controls which log channels have their level set by the liquibase.logLevel setting. Separate multiple values with commas. Example: liquibase,org.mariadb.jdbc. To set the level of all channels, use ALL.
--log-file
liquibase.logFile
LIQUIBASE_LOG_FILE
String Sends logging messages of what Liquibase does during runtime to a file. See log-file.
--log-format
liquibase.logFormat
LIQUIBASE_LOG_FORMAT
String

Sets the format of log output to the console or to log files. Liquibase Open Source users default to unstructured TEXT logs to the console or output log files. Liquibase Pro users have the option to set the value as JSON or JSON_PRETTY to enable JSON-structured log files to the console or output log files. Default: TEXT. See log-format.

--log-level
liquibase.logLevel
LIQUIBASE_LOG_LEVEL
String Controls the amount of messages that are generated when running Liquibase commands. The official log levels are: OFF, SEVERE, WARNING, INFO, FINE. Default: SEVERE. See log-level.
--mirror-console-messages-to-log
liquibase.mirrorConsoleMessagesToLog
LIQUIBASE_MIRROR_CONSOLE_MESSAGES_TO_LOG
Boolean When set to true, the console messages are mirrored to the logs as [liquibase.ui] to provide a more complete picture of Liquibase operations to log analysis tools. Set to false to change this behavior. Default: true. See mirror-console-messages-to-log.
--missing-property-mode
liquibase.missingPropertyMode
LIQUIBASE_MISSING_PROPERTY_MODE
String Specifies how to handle changelog property expressions where a value is not set. For example, a string null when no address property was defined. Values can be: PRESERVE, which leaves the string as-is; EMPTY, which replaces it with an empty string; or ERROR, which stops processing with an error. Default: PRESERVE.
--monitor-performance
liquibase.monitorPerformance
LIQUIBASE_MONITOR_PERFORMANCE
Boolean Enables performance tracking. If true, data is stored to a liquibase-TIMESTAMP.jfr file in your working directory. Any other value will enable tracking and be used as the name of the file to write the data to. Default: false. See monitor-performance.
--on-missing-include-changelog
liquibase.onMissingIncludeChangelog
LIQUIBASE_ON_MISSING_INCLUDE_CHANGELOG
String Controls how Liquibase behaves when it cannot find a changelog specified in an include tag in the root changelog. Can be set to WARN or FAIL. see on-missing-include-changelog.
--output-file
liquibase.outputFile
LIQUIBASE_OUTPUT_FILE
String Sends your command output to a file. See output-file.
--output-file-encoding
liquibase.outputFileEncoding
LIQUIBASE_OUTPUT_FILE_ENCODING
String Determines which character encoding to use when writing Liquibase command outputs to external files. Default: UTF-8. See output-file-encoding.
--output-line-separator
liquibase.outputLineSeparator
LIQUIBASE_OUTPUT_LINE_SEPARATOR
String Specifies the string that separates lines in STDOUT. Default: OS default line separator (LF or CRLF). See output-line-separator.
--preserve-schema-case
liquibase.preserveSchemaCase
LIQUIBASE_PRESERVE_SCHEMA_CASE
Boolean Determines whether Liquibase treats schema and catalog names as case-sensitive. Default: false.
--pro-mark-unused-not-drop
liquibase.pro.markUnusedNotDrop
LIQUIBASE_PRO_MARK_UNUSED_NOT_DROP
Boolean Defines whether a column will be dropped when running diff-changelog or generate-changelog. If false, Liquibase continues to drop columns rather than marking them as unused. If true, creates the markUnused changes instead of the dropColumn changes and overrides the behavior. Default: false.
--pro-sql-inline
liquibase.pro.sql.inline
LIQUIBASE_PRO_SQL_INLINE
Boolean If true, Liquibase generates changesets with SQL-based changes embedded instead of saving them to an external file. Default: false.
--pro-synonyms-drop-public
liquibase.pro.synonyms.drop.public
LIQUIBASE_PRO_SYNONYMS_DROP_PUBLIC
Boolean If false, Liquibase does not drop public synonyms in diff-changelog or drop-all. Default: true.
--prompt-for-non-local-database
liquibase.promptForNonLocalDatabase
LIQUIBASE_PROMPT_FOR_NON_LOCAL_DATABASE
Boolean Determines whether Liquibase prompts you if you access a non-local database. Default: false.
--property-provider-class
liquibase.propertyProviderClass
LIQUIBASE_PROPERTY_PROVIDER_CLASS
String Implements the Properties class to provide additional driver properties.
--search-path
liquibase.searchPath
LIQUIBASE_SEARCH_PATH
String Specifies the locations to search for migration files in. Separate multiple paths with commas. See search-path.
--secure-parsing
liquibase.secureParsing
LIQUIBASE_SECURE_PARSING
Boolean Enables the validation of the custom XSD files. If true, removes functionality from file parsers which could be used insecurely. Examples include (but not limited to) disabling remote XML entity support. If you use custom XSD files, set this parameter to false. (Liquibase 4.8.0 and later versions). Default: true.
--should-run
liquibase.shouldRun
LIQUIBASE_SHOULD_RUN
Boolean Determines whether Liquibase commands execute. Default: true. See should-run.
--should-snapshot-data
liquibase.shouldSnapshotData
LIQUIBASE_SHOULD_SNAPSHOT_DATA
Boolean Determines whether Liquibase snapshots your database data. Default: false. See should-snapshot-data.
--show-banner
liquibase.showBanner
LIQUIBASE_SHOW_BANNER
Boolean If true, shows a Liquibase banner on startup. Default: true.
--sql-log-level
liquibase.sql.logLevel
LIQUIBASE_SQL_LOG_LEVEL
String Defines the level of logging for SQL statements. Valid values are <FINE|INFO|WARNING|SEVERE|OFF>. 4.6.2+. Default: FINE. See sql-log-level.
--strict
liquibase.strict
LIQUIBASE_STRICT
Boolean If true, Liquibase enforces certain best practices and proactively looks for common errors. Default: false. See strict.
--support-property-escaping
liquibase.supportPropertyEscaping
LIQUIBASE_SUPPORT_PROPERTY_ESCAPING
Boolean If true, Liquibase supports escaping changelog parameters using a colon. Example: ${:user.name}. Default: false.
--use-procedure-schema
liquibase.useProcedureSchema
LIQUIBASE_USE_PROCEDURE_SCHEMA
Boolean If true, any createProcedure tags with a set schemaName will modify the procedure body with the given schema name. Default: true.
--validate-xml-changelog-files
liquibase.validateXmlChangelogFiles
LIQUIBASE_VALIDATE_XML_CHANGELOG_FILES
Boolean If true, will perform XSD validation of XML changelog files. When many XML changelog files are included, this validation may impact Liquibase performance. Default: true. See validate-xml-changelog-files.

Executors

For more information, see runWith.

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--native-executor
liquibase.nativeExecutor
LIQUIBASE_NATIVE_EXECUTOR
String

Name of a custom executor you can specify.

--psql-args
liquibase.psql.args
LIQUIBASE_PSQL_ARGS
String

Defines extra arguments to pass to the psql executable. For more information, see PSQL documentation.

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

--psql-keep-temp
liquibase.psql.keep.temp
LIQUIBASE_PSQL_KEEP_TEMP
Boolean

Indicates whether or not to keep a temporary SQL file after the execution of PSQL. If true, the file is not deleted. Default: false.

--psql-keep-temp-name
liquibase.psql.keep.temp.name
LIQUIBASE_PSQL_KEEP_TEMP_NAME
String

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

--psql-keep-temp-path
liquibase.psql.keep.temp.path
LIQUIBASE_PSQL_KEEP_TEMP_PATH
String

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

--psql-log-file
liquibase.psql.logFile
LIQUIBASE_PSQL_LOG_FILE
String

Log file for PSQL output.

--psql-path
liquibase.psql.path
LIQUIBASE_PSQL_PATH
String

Path to psql executable.

--psql-timeout
liquibase.psql.timeout
LIQUIBASE_PSQL_TIMEOUT
Integer

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

--sqlcmd-args
liquibase.sqlcmd.args
LIQUIBASE_SQLCMD_ARGS
String

Defines extra arguments to pass to the sqlcmd executable. For more information, see sqlcmd Utility documentation.

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

--sqlcmd-catalog-name
liquibase.sqlcmd.catalogName
LIQUIBASE_SQLCMD_CATALOG_NAME
String

Database to use when running SQLCMD.

--sqlcmd-keep-temp
liquibase.sqlcmd.keep.temp
LIQUIBASE_SQLCMD_KEEP_TEMP
Boolean

Indicates whether or not to keep a temporary SQL file after the execution of SQLCMD. If true, the file is not deleted. Default: false.

--sqlcmd-keep-temp-name
liquibase.sqlcmd.keep.temp.name
LIQUIBASE_SQLCMD_KEEP_TEMP_NAME
String

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

--sqlcmd-keep-temp-overwrite
liquibase.sqlcmd.keep.temp.overwrite
LIQUIBASE_SQLCMD_KEEP_TEMP_OVERWRITE
Boolean

Overwrites any files in the specified directory with the same name. Default: true.

--sqlcmd-keep-temp-path
liquibase.sqlcmd.keep.temp.path
LIQUIBASE_SQLCMD_KEEP_TEMP_PATH
String

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

--sqlcmd-log-file
liquibase.sqlcmd.logFile
LIQUIBASE_SQLCMD_LOG_FILE
String

Log file for SQLCMD output.

--sqlcmd-path
liquibase.sqlcmd.path
LIQUIBASE_SQLCMD_PATH
String

Path to sqlcmd executable.

--sqlcmd-timeout
liquibase.sqlcmd.timeout
LIQUIBASE_SQLCMD_TIMEOUT
Integer

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

--sqlplus-args
liquibase.sqlplus.args
LIQUIBASE_SQLPLUS_ARGS
String

Defines extra arguments to pass to the sqlplus executable. For more information, see SQL Plus documentation.

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

--sqlplus-create-spool
liquibase.sqlplus.createSpool
LIQUIBASE_SQLPLUS_CREATE_SPOOL
Boolean

If true, create an Oracle spool file. Default: true.

--sqlplus-keep-temp
liquibase.sqlplus.keep.temp
LIQUIBASE_SQLPLUS_KEEP_TEMP
Boolean

Indicates whether or not to keep a temporary SQL file after the execution of SQL Plus. If true, the file is not deleted. Default: false.

--sqlplus-keep-temp-name
liquibase.sqlplus.keep.temp.name
LIQUIBASE_SQLPLUS_KEEP_TEMP_NAME
String

Indicates the name of a temporary SQL file after the execution of SQL Plus. If no file name is specified, a name is automatically generated. In Oracle, if no file extension is specified, the file is saved as .lst.

--sqlplus-keep-temp-overwrite
liquibase.sqlplus.keep.temp.overwrite
LIQUIBASE_SQLPLUS_KEEP_TEMP_OVERWRITE
Boolean

Overwrites any files in the specified directory with the same name. Default: true.

--sqlplus-keep-temp-path
liquibase.sqlplus.keep.temp.path
LIQUIBASE_SQLPLUS_KEEP_TEMP_PATH
String

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

--sqlplus-path
liquibase.sqlplus.path
LIQUIBASE_SQLPLUS_PATH
String

Path to sqlplus executable.

--sqlplus-sqlerror
liquibase.sqlplus.sqlerror
LIQUIBASE_SQLPLUS_SQLERROR
String

Control the outcome when Liquibase returns a SQL error. The error clause is passed directly to Oracle. Default: WHENEVER SQLERROR EXIT FAILURE. Accepted values include:

  • WHENEVER SQLERROR EXIT FAILURE
  • WHENEVER SQLERROR EXIT ROLLBACK
  • WHENEVER SQLERROR EXIT ERROR
  • WHENEVER SQLERROR EXIT WARNING
  • WHENEVER SQLERROR EXIT SUCCESS
--sqlplus-timeout
liquibase.sqlplus.timeout
LIQUIBASE_SQLPLUS_TIMEOUT
Integer

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

Extensions

MongoDB Pro Extension

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--adjust-tracking-tables-on-startup
liquibase.mongodb.adjustTrackingTablesOnStartup
LIQUIBASE_MONGODB_ADJUST_TRACKING_TABLES_ON_STARTUP
Boolean Enabling this property will validate History Change Log and Log Lock Collections on Startup and adjust if are not up to date with current release. Worth keeping it disabled and re-enable when upgraded to a new Liquibase version. Default: true.
--retry-writes
liquibase.mongodb.retryWrites
LIQUIBASE_MONGODB_RETRY_WRITES
Boolean Setting this property to false will add retryWrites=false to connection URL. This will permit usage on Mongo Versions not supporting retryWrites, like Amazon DocumentDB. Default: true.
--supports-validator
liquibase.mongodb.supportsValidator
LIQUIBASE_MONGODB_SUPPORTS_VALIDATOR
Boolean Disabling this property will let create the Tracking Collections without validators. This will permit usage on Mongo Versions not supporting Validators. Default: true.

Configuration

Note: Before Liquibase 4.24.0, the following configuration properties can only be set as operating system environment variables (such as LIQUIBASE_HOME). In Liquibase 4.24.0+, you can set these with the JAVA_OPTS Environment Variable (such as liqiubase.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.

Deprecated

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--default-logger-level
liquibase.defaultLoggerLevel
LIQUIBASE_DEFAULT_LOGGER_LEVEL
String [Deprecated] Specifies a default logging level. Default: INFO.
--filter-log-messages
liquibase.filterLogMessages
LIQUIBASE_FILTER_LOG_MESSAGES
Boolean [Deprecated] Defines whether Liquibase filters log messages for potentially insecure data. Default: true. See filter-log-messages.

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), camelCase (properties file), and ENVAR_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.

Property substitution

For more information, see Substituting Properties in Changelogs.

Syntax Description
-D
Pass a name/value pair for substitution in the changelog(s). Pass as -D<property.name>=<property.value>. CLI-only.

Connection profile

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--changelog-file
liquibase.command.changelogFile
LIQUIBASE_COMMAND_CHANGELOG_FILE
String Specifies the root changelog file to execute.
--driver
liquibase.command.driver
LIQUIBASE_COMMAND_DRIVER
String

The JDBC driver class

--driver-properties-file
liquibase.command.driverPropertiesFile
LIQUIBASE_COMMAND_DRIVER_PROPERTIES_FILE
String

The JDBC driver properties file

--password
liquibase.command.password
LIQUIBASE_COMMAND_PASSWORD
String

Password to connect to the target database.

Tip: It is a best practice to store sensitive data in a Secrets Management tool with Liquibase Pro.

--reference-default-catalog-name
liquibase.command.referenceDefaultCatalogName
LIQUIBASE_COMMAND_REFERENCE_DEFAULT_CATALOG_NAME
String

The reference default catalog name to use for the database connection

--reference-default-schema-name
liquibase.command.referenceDefaultSchemaName
LIQUIBASE_COMMAND_REFERENCE_DEFAULT_SCHEMA_NAME
String

The reference default schema name to use for the database connection

--reference-driver
liquibase.command.referenceDriver
LIQUIBASE_COMMAND_REFERENCE_DRIVER
String

The JDBC driver class for the reference database

--reference-driver-properties-file
liquibase.command.referenceDriverPropertiesFile
LIQUIBASE_COMMAND_REFERENCE_DRIVER_PROPERTIES_FILE
String

The JDBC driver properties file for the reference database

--reference-password
liquibase.command.referencePassword
LIQUIBASE_COMMAND_REFERENCE_PASSWORD
String

The reference database password.

Tip: It is a best practice to store sensitive data in a Secrets Management tool with Liquibase Pro.

--reference-schemas
liquibase.command.referenceSchemas
LIQUIBASE_COMMAND_REFERENCE_SCHEMAS
String

Schemas names on reference database to use in diff. This is a CSV list.

--reference-url
liquibase.command.referenceUrl
LIQUIBASE_COMMAND_REFERENCE_URL
String

The JDBC reference database connection URL

--reference-username
liquibase.command.referenceUsername
LIQUIBASE_COMMAND_REFERENCE_USERNAME
String

The reference database username.

Tip: It is a best practice to store sensitive data in a Secrets Management tool with Liquibase Pro.

--url
liquibase.command.url
LIQUIBASE_COMMAND_URL
String

The JDBC database connection URL. See Using JDBC URL in Liquibase.

--username
liquibase.command.username
LIQUIBASE_COMMAND_USERNAME
String

Username to connect to the target database.

Tip: It is a best practice to store sensitive data in a Secrets Management tool with Liquibase Pro.

init

For more information, see init.

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--recursive
liquibase.command.init.copy.recursive
LIQUIBASE_COMMAND_INIT_COPY_RECURSIVE
Boolean

Recursively copy files from the source directory. Default: false

--source
liquibase.command.init.copy.source
LIQUIBASE_COMMAND_INIT_COPY_SOURCE
String

Source directory where the project files will be copied from. Default: .

--target
liquibase.command.init.copy.target
LIQUIBASE_COMMAND_INIT_COPY_TARGET
String

Path to the directory where the project files will be created

--changelog-file
liquibase.command.init.project.changelog-file
LIQUIBASE_COMMAND_INIT_PROJECT_CHANGELOG_FILE
String

Relative or fully qualified path to the changelog file. Default: example-changelog

--format
liquibase.command.init.project.format
LIQUIBASE_COMMAND_INIT_PROJECT_FORMAT
String

Format of the project changelog file: sql|xml|json|yaml|yml. Default: sql

--keep-temp-files
liquibase.command.init.project.keepTempFiles
LIQUIBASE_COMMAND_INIT_PROJECT_KEEP_TEMP_FILES
Boolean

For remote project locations, do not delete temporary project files. Default: false

--password
liquibase.command.init.project.password
LIQUIBASE_COMMAND_INIT_PROJECT_PASSWORD
String

Password to use to connect to the database. Default: letmein

--project-defaults-file
liquibase.command.init.project.projectDefaultsFile
LIQUIBASE_COMMAND_INIT_PROJECT_PROJECT_DEFAULTS_FILE
String

File with default Liquibase properties. Default: liquibase.properties

--project-dir
liquibase.command.init.project.projectDir
LIQUIBASE_COMMAND_INIT_PROJECT_PROJECT_DIR
String

An optional parameter used to specify the directory containing files (existing or to be auto-created) to be used with Liquibase. Default: ./

--project-guide
liquibase.command.init.project.projectGuide
LIQUIBASE_COMMAND_INIT_PROJECT_PROJECT_GUIDE
String

Parameter that turns on or turns off the CLI interactive mode. For example, if you want to set one parameter and have the rest as default ones, run the parameter and set --project-guide=off to not be asked about the rest of the settings: liquibase init project --changelog=mychangelog.sql --project-guide=off. Default: on

--url
liquibase.command.init.project.url
LIQUIBASE_COMMAND_INIT_PROJECT_URL
String

The JDBC database connection URL. See Using JDBC URL in Liquibase. Default: jdbc:h2:tcp://localhost:9090/mem:dev

--username
liquibase.command.init.project.username
LIQUIBASE_COMMAND_INIT_PROJECT_USERNAME
String

Username to connect to the database. Default: dbuser

--bind-address
liquibase.command.init.startH2.bindAddress
LIQUIBASE_COMMAND_INIT_START_H2_BIND_ADDRESS
String

Network address to bind to. Default: 127.0.0.1

--db-port
liquibase.command.init.startH2.dbPort
LIQUIBASE_COMMAND_INIT_START_H2_DB_PORT
String

Port to run h2 database on. Default: 9090

--launch-browser
liquibase.command.init.startH2.launchBrowser
LIQUIBASE_COMMAND_INIT_START_H2_LAUNCH_BROWSER
Boolean

Whether to open a browser to the database's web interface. Default: true

--password
liquibase.command.init.startH2.password
LIQUIBASE_COMMAND_INIT_START_H2_PASSWORD
String

Password to use for created h2 user. Default: letmein

--username
liquibase.command.init.startH2.username
LIQUIBASE_COMMAND_INIT_START_H2_USERNAME
String

Username to create in h2. Default: dbuser

--web-port
liquibase.command.init.startH2.webPort
LIQUIBASE_COMMAND_INIT_START_H2_WEB_PORT
String

Port to run h2's web interface on. Default: 8080

flow

For more information, see flow.

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--flow-file
liquibase.command.flowFile
LIQUIBASE_COMMAND_FLOW_FILE
String

The path to the configuration YAML file which contains one or more "stages" of commands to be executed in a liquibase flow operation. Default: liquibase.flowfile.yaml.

--flow-file-strict-parsing
liquibase.command.flowFileStrictParsing
LIQUIBASE_COMMAND_FLOW_FILE_STRICT_PARSING
Boolean

If true, parse flow file YAML to allow only Liquibase flow file-specific properties, indentations, and structures. Default: true.

--flow-shell-interpreter
liquibase.command.flowShellInterpreter
LIQUIBASE_COMMAND_FLOW_SHELL_INTERPRETER
String

The default interpreter used to execute shell commands.

--flow-shell-keep-temp-files
liquibase.command.flowShellKeepTempFiles
LIQUIBASE_COMMAND_FLOW_SHELL_KEEP_TEMP_FILES
Boolean

If true, do not delete temporary files created by the shell command execution. Default: false.

Quality checks

For more information, see Quality Checks.

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--checks-scope
liquibase.command.checks.<subcommand>.checksScope
LIQUIBASE_COMMAND_CHECKS_<subcommand>_CHECKS_SCOPE
String

The Liquibase component to run checks against, which can be a comma separated list. Default: changelog.

--checks-settings-file
liquibase.command.checks.<subcommand>.checksSettingsFile
LIQUIBASE_COMMAND_CHECKS_<subcommand>_CHECKS_SETTINGS_FILE
String

Specifies the checks settings file to use with subcommands. Write the relative path of the settings file that you want to read from or modify. For more information, see Use the Checks Settings Configuration File.

--check-name
liquibase.command.checks.<subcommand>.checkName
LIQUIBASE_COMMAND_CHECKS_<subcommand>_CHECK_NAME
String

Use this to specify the short name of the check you want to target with one of the following subcommands:

  • bulk-set
  • copy
  • customize
  • delete
  • disable
  • enable
  • reset
  • run
  • show

Structured Logging

For more information, see Substituting Properties in Changelogs.

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--custom-log-data-file
liquibase.customLogDataFile
LIQUIBASE_CUSTOM_LOG_DATA_FILE
String Specifies the file that contains the custom data that can be included or excluded from Structured Logs. Learn more here: Custom and Private Data in Structured Logs

General

Syntax (--cli, propertiesFile, ENV_VAR) Type Description
--add-row
liquibase.command.addRow
LIQUIBASE_COMMAND_ADD_ROW
Boolean

If true, creates a new DATABASECHANGELOG row for the tag you're adding. If false, adds the new tag to the last existing row. Liquibase 4.23.1+. Requires a Liquibase Pro license key. Default: false.

Note: If you create a new DATABASECHANGELOG row for your tag but later roll back that tag, Liquibase also rolls back the row you created.

--change-exec-listener-class
liquibase.command.changeExecListenerClass
LIQUIBASE_COMMAND_CHANGE_EXEC_LISTENER_CLASS
String Includes a fully-qualified class which specifies ChangeExecListener. See Implementing a Custom ChangeExecListener Class with Liquibase.
--change-exec-listener-properties-file
liquibase.command.changeExecListenerPropertiesFile
LIQUIBASE_COMMAND_CHANGE_EXEC_LISTENER_PROPERTIES_FILE
String Specifies the path to a properties file for ChangeExecListenerClass.
--changelog-identifier
liquibase.command.changesetIdentifier
LIQUIBASE_COMMAND_CHANGESET_IDENTIFIER
String Specifies the changeset ID identifier of the form filepath::id::author.
--contexts
liquibase.command.contexts
LIQUIBASE_COMMAND_CONTEXTS
String

Specifies the changeset contexts to match. Contexts are expressions you can add to changesets to control which changesets are executed in any particular migration run.

--count
liquibase.command.count
LIQUIBASE_COMMAND_COUNT
Integer Specifies the number of changes for which to generate SQL.
--data-output-directory
liquibase.command.dataOutputDirectory
LIQUIBASE_COMMAND_DATA_OUTPUT_DIRECTORY
String

Specifies a directory to send the data output of the command as a CSV file.

--date
liquibase.command.date
LIQUIBASE_COMMAND_DATE
Datetime

The date and time your database rolls back to. The date format is YYYY-MM-DD HH:MM:SS or YYYY-MM-DD'T'HH:MM:SS. However, it is possible to indicate the date or time only. Specify as --date=myDate. Positional format <command> <date> deprecated in 4.4+.

--default-catalog-name
liquibase.command.defaultCatalogName
LIQUIBASE_COMMAND_DEFAULT_CATALOG_NAME
String

Name of the default catalog to use for the database connection

--default-schema-name
liquibase.command.defaultSchemaName
LIQUIBASE_COMMAND_DEFAULT_SCHEMA_NAME
String

Name of the default schema to use for the database connection. If defaultSchemaName is set, then objects do not have to be fully qualified. This means you can refer to just mytable instead of myschema.mytable.

Tip: In Liquibase v4.23.0+, camelCase for defaultSchemaName works successfully. If you are on an earlier version, camelCase may not work as expected.

Note: The syntax liquibase.command.defaultSchemaName is valid for v4.19.0+. For prior versions, use defaultSchemaName.

--diff-types
liquibase.command.diffTypes
LIQUIBASE_COMMAND_DIFF_TYPES
String

Specifies the types of objects to compare. Includes a list of diff types in a changelog file expressed as a comma-separated list (without spaces): catalogs, tables, functions, views, columns, indexes, foreignkeys, primarykeys, uniqueconstraints, data, storedprocedures, triggers, sequences, databasepackage, databasepackagebody.

If null, default types are tables, views, columns, indexes, foreignkeys, primarykeys, uniqueconstraints.

--exclude-objects
liquibase.command.excludeObjects
LIQUIBASE_COMMAND_EXCLUDE_OBJECTS
String

Objects to exclude from diff

--include-catalog
liquibase.command.includeCatalog
LIQUIBASE_COMMAND_INCLUDE_CATALOG
Boolean

If true, the catalog will be included in generated changesets. Default: false

--include-objects
liquibase.command.includeObjects
LIQUIBASE_COMMAND_INCLUDE_OBJECTS
String

Objects to include in diff

--include-schema
liquibase.command.includeSchema
LIQUIBASE_COMMAND_INCLUDE_SCHEMA
Boolean

If true, the schema will be included in generated changesets. Default: false

--include-tablespace
liquibase.command.includeTablespace
LIQUIBASE_COMMAND_INCLUDE_TABLESPACE
Boolean

Include the tablespace attribute in the changelog. Default: false

--labels
liquibase.command.labels
LIQUIBASE_COMMAND_LABELS
String

Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changeset will be executed in any migration run.

--output-directory
liquibase.command.outputDirectory
LIQUIBASE_COMMAND_OUTPUT_DIRECTORY
String

The directory where the database documentation is generated. Specify as --output-directory=exampleDirectory. Positional format <command> <directory> deprecated in 4.4+.

--output-schemas
liquibase.command.outputSchemas
LIQUIBASE_COMMAND_OUTPUT_SCHEMAS
String

Output schemas names. This is a CSV list.

--overwrite-output-file
liquibase.command.overwriteOutputFile
LIQUIBASE_COMMAND_OVERWRITE_OUTPUT_FILE
Boolean

Determines whether generate-changelog can overwrite an existing changelog, including one specified in --changelog-file. Default: false.

--rollback-on-error
liquibase.command.rollbackOnError
LIQUIBASE_COMMAND_ROLLBACK_ON_ERROR
Boolean

Liquibase Pro only. If any changeset in a deployment fails, rollback-on-error stops the update operation and rolls back all changesets you just deployed. Default: false.

Note: A changeset marked failOnError=false does not trigger as an error, so rollback-on-error will not occur. Additionally, if a changeset is not auto-rollback compliant or does not have a rollback script, then rollback-on-error does not occur for any changeset. Read more: failOnError.

--rollback-script
liquibase.command.rollbackScript
LIQUIBASE_COMMAND_ROLLBACK_SCRIPT
String

The path to the script to use to perform the rollback. Only needed if the rollback is not already defined in the changelog, and if it is not a rollback statement that is automatically generated by Liquibase.

--schemas
liquibase.command.schemas
LIQUIBASE_COMMAND_SCHEMAS
String

Schemas to include in diff

Schemas to include in drop

Specifies database schemas you want to include

Specifies schemas to be able to compare a multi-schema database to its snapshot

--show-summary
liquibase.command.showSummary
LIQUIBASE_COMMAND_SHOW_SUMMARY
String

Produces a summary list of any changesets skipped and why they were skipped. Valid values are OFF, SUMMARY, and VERBOSE. Default: SUMMARY. Available in Liquibase 4.19.1+.

Note: Liquibase may display one or multiple reasons for halting deployment of a changeset. If Liquibase cannot resolve a halting reason, it does not evaluate the changeset for other possible halting reasons.

--snapshot-format
liquibase.command.snapshotFormat
LIQUIBASE_COMMAND_SNAPSHOT_FORMAT
String

Creates a JSON or YAML file that represents the current state of the database.

--sql
liquibase.command.sql
LIQUIBASE_COMMAND_SQL
String

The SQL string to execute

--sql-file
liquibase.command.sqlFile
LIQUIBASE_COMMAND_SQL_FILE
String

Specifies the file where SQL statements are stored

--tag
liquibase.command.tag
LIQUIBASE_COMMAND_TAG
String

The tag identifying which tagged changesets in the changelog to evaluate. Specify as --tag=myTag. Positional format <command> <tag> deprecated in 4.4+.

--tag-version
liquibase.command.tagVersion
LIQUIBASE_COMMAND_TAG_VERSION
String

Tag version to use for multiple occurrences of a tag. Valid values are NEWEST and OLDEST. If set to NEWEST, Liquibase rolls back changes up to the most recent instance of the tag. Any older instances of the tag remain in the DATABASECHANGELOG table. If set to OLDEST, Liquibase rolls back changes up to the first instance of the tag. Default: OLDEST

--verbose
liquibase.command.verbose
LIQUIBASE_COMMAND_VERBOSE
Boolean

Specifies the detail level of the command's output.