rollback-one-update
Note: This is a Liquibase Pro feature, 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 deployment ID 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 deployment IDs 1 through 5, with deployment ID 2 incorporating all the changesets we want to roll back. As you can see, the rollback-one-update
command allows you to target deployment ID 2 and revert all changesets associated with the same deployment ID to its previous state without impacting the others.
In Liquibase Pro 4.27.0 and later, you can automatically generate a database Rollback Report summarizing this command.
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 you do not specify --deployment-id
, Liquibase Pro looks up the most recent deployment ID from the DATABASECHANGELOG table and uses 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.
Parameters
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
A required parameter which indicates you intend to use this feature. If you specify |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global argument |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global argument |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global argument |
Optional |
|
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 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 |
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
A required parameter which indicates you intend to use this feature. If you specify |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global argument |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global argument |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global argument |
Optional |
|
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 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 |
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
A required parameter which indicates you intend to use this feature. If you specify |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global argument |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global argument |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global argument |
Optional |
|
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 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 |
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
A required parameter which indicates you intend to use this feature. If you specify |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global argument |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global argument |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global argument |
Optional |
|
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 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 |
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
A required parameter which indicates you intend to use this feature. If you specify |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global argument |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global argument |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global argument |
Optional |
|
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 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.