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: For best results, specify all commands and parameters with the --kebab-case format in the CLI. 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..

Like what you read? Try this command in Pro for Free.

Related links