update-testing-rollback

update-testing-rollback tests rollback support by deploying all pending changesets to the database, executes a rollback sequentially for the equal number of changesets that were deployed, and then runs the update again deploying all changesets to the database.

Uses

update-testing-rollback is typically used when you want to test rollback functionality when deploying changesets in your changelog sequentially. Run this command only when all pending changelogs have been verified as ready to be deployed as you cannot specify changesets to exclude.

update-testing-rollback utilizes a multi-step operation and runs in sequential order:

  1. update changeset1; update changeset2; update changeset3
  2. rollback changeset3; rollback changeset2; rollback changeset1
  3. update changeset1; update changeset2 update changeset3

Note: If you use the earlier versions of Liquibase, the order of operations may differ.

If any of the changesets fail rollback, changesets that come after the failed changesets will not be tested or updated. Any changesets that come before the failed changesets will be deployed to the database.

Running the update-testing-rollback command

To run the update-testing-rollback command, specify the driver, classpath, and URL in the Liquibase properties file. For more information, see Create and Configure a liquibase.properties File. You can also specify properties from the command line.

Then run the update-testing-rollback command:

liquibase --changelog-file=mainchangelog.xml update-testing-rollback

Note: Enter the name of the changelog you want to use in place of mainchangelog.xml. You can also add the changelog-file to the Liquibase properties file.

update-testing-rollback global attributes

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.

Attribute 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

Note: The username and password attributes are not required for connections and systems which use alternate means of authentication.