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:
- Any changesets that come before the failed changesets are deployed to the database.
- Any changesets that come after the failed changesets are not tested or updated.
In Liquibase Pro 4.28.0 and later, you can enable Operation Reports to summarize the update-testing-rollback
command. This generates an Update Report, Rollback Report, and final Update Report. By default, they are sorted by name:
Update-report-1of3-03-Apr-2024-130655
Rollback-report-2of3-03-Apr-2024-130656
Update-report-3of3-03-Apr-2024-130657
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 parameters
Attribute | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Liquibase Pro only. Use this argument only if you are specifying |
Optional |
|
Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global parameter |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global parameter |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global parameter |
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide exceptions (which may contain SQL) from the operation report at the command level. Overrides the global parameter
|
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide changeset SQL in operation reports at the command level. Overridden by the global parameter |
Optional |
|
Liquibase Pro only. If any changeset in a deployment fails, Note: A changeset marked |
Optional |
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as |
Optional |
|
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 |
Attribute | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Liquibase Pro only. Use this argument only if you are specifying |
Optional |
|
Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global parameter |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global parameter |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global parameter |
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide exceptions (which may contain SQL) from the operation report at the command level. Overrides the global parameter
|
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide changeset SQL in operation reports at the command level. Overridden by the global parameter |
Optional |
|
Liquibase Pro only. If any changeset in a deployment fails, Note: A changeset marked |
Optional |
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as |
Optional |
|
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 |
Attribute | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Liquibase Pro only. Use this argument only if you are specifying |
Optional |
|
Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global parameter |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global parameter |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global parameter |
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide exceptions (which may contain SQL) from the operation report at the command level. Overrides the global parameter
|
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide changeset SQL in operation reports at the command level. Overridden by the global parameter |
Optional |
|
Liquibase Pro only. If any changeset in a deployment fails, Note: A changeset marked |
Optional |
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as |
Optional |
|
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 |
Attribute | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Liquibase Pro only. Use this argument only if you are specifying |
Optional |
|
Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global parameter |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global parameter |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global parameter |
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide exceptions (which may contain SQL) from the operation report at the command level. Overrides the global parameter
|
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide changeset SQL in operation reports at the command level. Overridden by the global parameter |
Optional |
|
Liquibase Pro only. If any changeset in a deployment fails, Note: A changeset marked |
Optional |
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as |
Optional |
|
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 |
Attribute | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Fully-qualified class which specifies a |
Optional |
|
Path to a properties file for the |
Optional |
|
Specifies the changeset contexts to match. Contexts are tags you can add to changesets to control which changesets are executed in any particular migration run. Note: If you use Liquibase 4.23.0 or earlier, use the syntax |
Optional |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Note: In the properties file and Note: In Liquibase 4.12.0 and later, you can use mixed-case schema names if you set |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Liquibase Pro only. Use this argument only if you are specifying |
Optional |
|
Specifies the changeset labels to match. Labels are tags you can add to changesets to control which changesets will be executed in any migration run. |
Optional |
|
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 |
|
Enables a report at the command level. Overrides the global parameter |
Optional |
|
Specifies the name of the report file at the command level. Overrides the global parameter |
Optional |
|
Specifies the file path to the report file at the command level. Overrides the global parameter |
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide exceptions (which may contain SQL) from the operation report at the command level. Overrides the global parameter
|
Optional |
|
Liquibase 4.31.0+. Specifies whether to hide changeset SQL in operation reports at the command level. Overridden by the global parameter |
Optional |
|
Liquibase Pro only. If any changeset in a deployment fails, Note: A changeset marked |
Optional |
|
The tag identifying which tagged changesets in the changelog to evaluate. Specify as |
Optional |
|
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.