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

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