update-to-tag

The update-to-tag command applies sequential changes to your database from the newest changeset to the changeset with the tag you specified and applied earlier.

Uses

The update-to-tag command is mainly used to apply changes sequentially, starting with the changesets from the top of the changelog file until the specified tag is reached. Even though there are other undeployed changes in the changelog, the command deploys only the changesets associated with a specific tag.

The update-to-tag command will deploy changes only when you have tagDatabase Change Type in your changelog file. You cannot use the update-to-tag command with the reference to a tag created in the DATABASECHANGELOG table using the tag command.

The following image shows that if you run the update-to-tag command with the tag version1, which should be specified in the changelog file as a tagDatabase changeset, Liquibase will deploy createTable A, createTable B, and version1 without deploying createTable C.

Note: Currently, the tagDatabase Change Type is not supported in the formatted SQL changelog. The supported formats are XML, YAML, and JSON. If you have a root XML changelog that includes formatted SQL files, you can apply a changeset with a tag between the formatted SQL files. For more information, see Best Practices.

Additionally, it is best practice to run the update-to-tag-sql helper command to inspect the update-to-tag SQL, so you can correct any issues that may arise before running the command.

Syntax

To run the update-to-tag command, specify the driver, classpath, and URL in the Liquibase properties file. You can also specify these properties in your command line.

Then run the update-to-tag command:

liquibase update-to-tag --tag=myTag --changelog-file=example-changelog.xml

Note: The --tag=myTag syntax was added in Liquibase 4.4. If you use an older version, specify your tag as a positional argument: <command> myTag.

Command arguments

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.

Attribute Definition Requirement
--changelog-file *

The root changelog

Required
--url

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

Required
--tag

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

Required
--change-exec-listener-class

Fully-qualified class which specifies a ChangeExecListener. For more information, see Implementing a Custom ChangeExecListener Class with Liquibase and ChangeExecListenerCommandStep.

Optional
--change-exec-listener-properties-file

Path to a properties file for the ChangeExecListener class. For more information, see Implementing a Custom ChangeExecListener Class with Liquibase and ChangeExecListenerCommandStep.

Optional
--context-filter

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

Note: If you use Liquibase 4.23.0 or earlier, use the syntax --contexts instead of --context-filter.

Optional
--default-catalog-name

Name of the default catalog to use for the database connection

Optional
--default-schema-name

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.

Optional
--driver

The JDBC driver class

Optional
--driver-properties-file

The JDBC driver properties file

Optional
--force-on-partial-changes

Liquibase Pro only. Use this argument only if you are specifying --rollback-on-error=true to automatically roll back update operations containing errors. --force-on-partial-changes=true specifies whether Liquibase rolls back partially invalid changesets, such as a changeset containing two changes: one with an error and one without an error. This ensures that you can successfully roll back all changes if a deployment has an error, even if the changeset contains multiple changes. Available in Liquibase 4.25.0+. Default: false. See also: failOnError.

Optional
--label-filter

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

Optional
--password

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.

Optional
--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. Available in Liquibase 4.18.0+. 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.

Optional
--show-summary

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.

Optional
--show-summary-output

Summary output to report update summary results. Valid values are LOG, CONSOLE, and ALL. If set to LOG, the --show-summary output is sent to the file specified in --log-file. If set to CONSOLE, the --show-summary output is sent to STDOUT. If set to ALL, the --show-summary output is sent to both locations. Default: ALL. Available in Liquibase 4.24.0+.

Optional
--username

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.

Optional

*Liquibase will check the changelog and any nested changelogs for definitions of the changesets to update.

Note: The username and password attributes are not required for connections and systems which use alternate means of authentication. Also, you can specify database credentials as part of the url attribute.

Output

Liquibase Version: 4.9.1
Liquibase Community 4.9.1 by Liquibase
Running Changeset: example-changelog.sql::1::your.name
Running Changeset: example-changelog.sql::2::your.name
Running Changeset: example-changelog.sql::3::other.dev

Liquibase command 'update-to-tag' was executed successfully.