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:
- update changeset1; update changeset2; update changeset3
- rollback changeset3; rollback changeset2; rollback changeset1
- 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.
Syntax
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 update-testing-rollback --changelog-file=example-changelog.xml
Command arguments
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. See Using JDBC URL in Liquibase. |
Required |
--change-exec-listener-class
|
Fully-qualified class which specifies a ChangeExecListener |
Optional |
--change-exec-listener-properties-file
|
Path to a properties file for the |
Optional |
--contexts
|
Specifies the changeset contexts to match. Contexts are expressions you can add to changesets to control which changesets are executed in any particular migration run. |
Optional |
--default-catalog-name
|
Name of the default catalog to use for the database connection |
Optional |
--default-schema-name
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
--driver
|
The JDBC driver class |
Optional |
--driver-properties-file
|
The JDBC driver properties file |
Optional |
--label-filter
|
Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changeset will be executed in any migration run. |
Optional |
--password
|
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 |
--rollback-on-error=[boolean] ![]() |
Liquibase Pro only. If any changeset in a deployment fails, Note: A changeset marked |
Optional |
--username
|
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 |
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.
Output
When successful, the update-testing-rollback
command produces the following output:
Liquibase Version: 4.9.1
Liquibase Community 4.9.1 by Liquibase
Liquibase command 'update-testing-rollback' was executed successfully.