rollback-one-update-sql
Note: This is a Liquibase Pro feature, so you need a Liquibase Pro License Key to use it.
The rollback-one-update-sql
command is a helper command that allows you to inspect the SQL Liquibase will run to revert all changeset associated with the deploymentID
specified in the rollback-one-update command. It is only available for Liquibase Pro users.
Uses
The rollback-one-update-sql
command is typically used when you want inspect the raw SQL that Liquibase uses to revert all changesets associated with a specified deploymentId
when you run the rollback-one-update
command, so you don't unintentionally make a mistake.
Syntax
Before running the rollback-one-update-sql
command, you can get the optional deploymentId
of the changeset group you want to revert by running the history command.
Then run the rollback-one-update-sql
command, with your information:
liquibase rollback-one-update-sql --changelog-file=example-changelog.xml --deploymentId=2068379006
Note: Unlike the rollback-one-update command, there is no impact to the DATABASECHANGELOG table.
For more command-specific help, type liquibase rollback-one-update-sql --help
into the command prompt.
Parameters
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
|
File path to where the command output will be written. If not specified, output goes to |
Optional |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Control whether names of objects in the default
catalog are fully qualified or not. If |
Optional |
|
Control whether names of objects in the default
schema are fully qualified or not. If |
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 |
|
The path to the script to use to perform the rollback. Only needed if the rollback is not already defined in the changelog, and if it is not a rollback statement that is automatically generated by Liquibase. |
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 |
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
|
File path to where the command output will be written. If not specified, output goes to |
Optional |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Control whether names of objects in the default
catalog are fully qualified or not. If |
Optional |
|
Control whether names of objects in the default
schema are fully qualified or not. If |
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 |
|
The path to the script to use to perform the rollback. Only needed if the rollback is not already defined in the changelog, and if it is not a rollback statement that is automatically generated by Liquibase. |
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 |
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
|
File path to where the command output will be written. If not specified, output goes to |
Optional |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Control whether names of objects in the default
catalog are fully qualified or not. If |
Optional |
|
Control whether names of objects in the default
schema are fully qualified or not. If |
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 |
|
The path to the script to use to perform the rollback. Only needed if the rollback is not already defined in the changelog, and if it is not a rollback statement that is automatically generated by Liquibase. |
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 |
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
|
File path to where the command output will be written. If not specified, output goes to |
Optional |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Control whether names of objects in the default
catalog are fully qualified or not. If |
Optional |
|
Control whether names of objects in the default
schema are fully qualified or not. If |
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 |
|
The path to the script to use to perform the rollback. Only needed if the rollback is not already defined in the changelog, and if it is not a rollback statement that is automatically generated by Liquibase. |
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 |
Global parameters
Parameter | Definition | Requirement |
---|---|---|
|
Your Liquibase Pro license key |
Required |
|
File path to where the command output will be written. If not specified, output goes to |
Optional |
Command parameters
Parameter | Definition | Requirement |
---|---|---|
|
The root changelog |
Required |
|
The JDBC database connection URL. See Using JDBC URL in Liquibase. |
Required |
|
Name of the default catalog to use for the database connection |
Optional |
|
Name of the default schema to use for the database connection. If Tip: In Liquibase v4.23.0+, camelCase for Note: The syntax |
Optional |
|
Specifies the deployment ID of all rows from the DATABASECHANGELOG table related to the changesets intended for rollback. If not supplied, Liquibase Pro will look up the most recent deployment ID from the DATABASECHANGELOG table and use it for the rollback. |
Optional |
|
The JDBC driver class |
Optional |
|
The JDBC driver properties file |
Optional |
|
Control whether names of objects in the default
catalog are fully qualified or not. If |
Optional |
|
Control whether names of objects in the default
schema are fully qualified or not. If |
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 |
|
The path to the script to use to perform the rollback. Only needed if the rollback is not already defined in the changelog, and if it is not a rollback statement that is automatically generated by Liquibase. |
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 |
* Liquibase checks the changelog and any nested changelogs for the definitions of the changeset to roll back.
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.
When successful, the rollback-one-update-sql
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 '2214257654'
rollback-one-update executed for DBUSER@jdbc:h2:tcp://localhost:9090/mem:dev
-- *********************************************************************
--rollback deployment ID '2214257654'
-- *********************************************************************
-- Change Log: example-changelog.sql
-- Ran at: 5/10/22, 2:26 PM
-- Against: DBUSER@jdbc:h2:tcp://localhost:9090/mem:dev
-- Liquibase version: 4.9.1
-- *********************************************************************
-- Lock Database
UPDATE PUBLIC.DATABASECHANGELOGLOCK SET LOCKED = TRUE, LOCKEDBY = 'DESKTOP-SQVSSV2 (192.168.1.179)', LOCKGRANTED = NOW() WHERE ID = 1 AND LOCKED = FALSE;
-- Rolling Back ChangeSet: example-changelog.sql::3::other.dev
ALTER TABLE person DROP COLUMN country;
DELETE FROM PUBLIC.DATABASECHANGELOG WHERE ID = '3' AND AUTHOR = 'other.dev' AND FILENAME = 'example-changelog.sql';
-- Rolling Back ChangeSet: example-changelog.sql::2::your.name
DROP TABLE company;
DELETE FROM PUBLIC.DATABASECHANGELOG WHERE ID = '2' AND AUTHOR = 'your.name' AND FILENAME = 'example-changelog.sql';
-- Rolling Back ChangeSet: example-changelog.sql::1::your.name
DROP TABLE person;
DELETE FROM PUBLIC.DATABASECHANGELOG WHERE ID = '1' AND AUTHOR = 'your.name' AND FILENAME = 'example-changelog.sql';
-- Release Database Lock
UPDATE PUBLIC.DATABASECHANGELOGLOCK SET LOCKED = FALSE, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1;
Liquibase command 'rollback-one-update-sql' was executed successfully.
Like what you see? Try this command in Pro for Free.
Related links
- Maven rollbackOneUpdateSQL
- Ant rollbackFutureDatabase