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 rollback-one-update
command allows you to target a specific deploymentId
without impacting other changes or deployments that came before or after it.
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.
The impacts of rollback-one-update
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.
Additional impacts to the 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.
Running the rollback-one-update
command
Before running the rollback-one-update
command, you can get the optional deploymentId
of the deployment you want to revert by running the history command.
Note: If the deploymentId
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 --deploymentId=068379006 --force
For more command specific help, type liquibase rollback-one-update --help
into the command prompt.
rollback-one-update
global attributes
Tip: All commands and parameters use the --kebab-case
format in the CLI environment. This is the format Liquibase recommends for best results. If your preference is camelCase, it will still work in the CLI.
Parameter | Definition | Requirement |
---|---|---|
--changelog-file * |
The root changelog | Required |
--url
|
The JDBC database connection URL | Required |
--username
|
The database username | Required |
--password
|
The database password | Required |
--liquibaseProLicenseKey
|
Your Liquibase Pro license key | Required |
* 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.
rollback-one-update
command attributes
Parameter | Definition | Requirement |
---|---|---|
--deploymentId * |
Specifies the deploymentId of all from the DATABASECHANGELOG table related to the changesets intended for rollback. |
Optional |
--force
|
A required parameter which indicates you intend to use this feature. | Required |
* If not supplied, Liquibase Pro will lookup the most recent deploymentId
from the DATABASECHANGELOG table and use it for the rollback.
Output
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
----------------------------------------------------------------------
View a report of this operation at https://hub.liquibase.com/r/4Wir8thXRN
* IMPORTANT: New users of Hub first need to Sign In to your account
with the one-time password sent to your email, which also serves as
your username.
----------------------------------------------------------------------
rollback-one-update executed for DBUSER@jdbc:h2:tcp://localhost:9090/mem:dev
Liquibase command 'rollback-one-update' was executed successfully..