rollback-one-update
Note: This is a Liquibase Pro command, so you need a Liquibase Pro License Key to use it.
The rollback-one-update
command reverts (rolls back) all changesets related by a specific deploymentId
that was made during a previous change to your database. It is only available for Liquibase Pro users.
Uses
The rollback-one-update
command is typically used when you want to undo a series of changes made to your database during a specific deployment and revert those changesets to their previous state without affecting any other changes made to your database.
The image above shows deploymentIds
1 through 5, with deploymentId
2 incorporating all the changesets we want to roll back. As you can see, the rollback-one-update
command allows you to target deploymentId
2 and revert all changesets associated with the same deploymentId
to its previous state without impacting the others.
Impact
Like any cherry-picking tool, using the rollback-one-update
command comes with risks which may be unintended.
Warning: Look for potential unintended consequences before using this command.
It is a best practice to run the rollback-one-update-sql command because it allows you to inspect the rollback-one-update
SQL and search for any potential mistakes before you execute the rollback-one-update
command.
The use of rollback-one-update
comes with risk of unintended consequences, so you must also specify --force
to indicate that you intend to run the command.
DATABASECHANGELOG table
Running the rollback-one-update
command will remove the deployment record from the DATABASECHANGELOG table. As a user, you must decide on what to do with your changesets after the rollback-one-changeset
command has been run.
Depending on your desired outcome, consider doing one of the following:
- Modify the changeset in the changelog file and re-deploy it.
- Do nothing to the changeset in the changelog file and have it be re-deployed.
- Delete the changeset in the changelog file.
Syntax
Before running the rollback-one-update
command, you can get the ID of the deployment you want to revert by running the history command.
Note: If the deployment-id
is not supplied, Liquibase Pro will look up the most recent deploymentId
from the DATABASECHANGELOG table and use it for the rollback.
Then run the rollback-one-update
command, with your information:
liquibase rollback-one-update --changelog-file=example-changelog.xml --deployment-id=068379006 --force
For more command-specific help, type liquibase rollback-one-update --help
into the command prompt.
Global 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.
Parameter | Definition | Requirement |
---|---|---|
--license-key
|
Your Liquibase Pro license key |
Required |
Command arguments
Parameter | Definition | Requirement |
---|---|---|
--changelog-file * |
The root changelog |
Required |
--force
|
A required parameter which indicates you intend to use this feature. |
Required |
--url
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
--change-exec-listenter-class
|
Fully-qualified class which specifies a |
Optional |
--change-exec-listener-properties-flie
|
Path to a properties file for the |
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 Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
--deployment-id * |
Specifies the |
Optional |
--driver
|
The JDBC driver class |
Optional |
--driver-properties-file
|
The JDBC driver properties file |
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-script
|
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. |
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 nested changelogs for definitions of the changesets to rollback.
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.

When successful, the rollback-one-update
command produces the following output:
Liquibase Version: 4.9.1
Liquibase Pro 4.9.1 by Liquibase licensed to Liquibase Pro Evaluation until Tue Jun 07 18:00:00 MDT 2022
WARNING! Your license will expire in 29 days!
To renew Liquibase Pro please contact sales@liquibase.com or go to https://www.liquibase.org/download
Defaulting to last deployment ID '2212078476'
Rolling Back Changeset: example-changelog.sql::3::other.dev
Rolling Back Changeset: example-changelog.sql::2::your.name
Rolling Back Changeset: example-changelog.sql::1::your.name
rollback-one-update executed for DBUSER@jdbc:h2:tcp://localhost:9090/mem:dev
Liquibase command 'rollback-one-update' was executed successfully..
Like what you see? Try this command in Pro for Free.