rollback-one-changeset-sql

Note: This is a Liquibase Pro command, so you need a Liquibase Pro License Key to use it.

The rollback-one-changeset-sql command is a helper command that allows you to inspect the SQL Liquibase will run to revert the changeset specified in the rollback-one-changeset command. It is only available for Liquibase Pro users.

Uses

The rollback-one-changeset-sql command is useful when you want to inspect the raw SQL that Liquibase uses to revert your changeset when you run the rollback-one-changeset command, so that you don't unintentionally make a mistake.

Running the rollback-one-changeset-sql command

Before running the rollback-one-changeset-sql command, gather the following information from your DATABASECHANGELOG table or by running the history command:

  • The author of the changeset you want to revert
  • The ID of the changeset you want to revert
  • The file name (changeset path) of the changeset you want to revert

Then run the rollback-one-changeset-sql command, with your information:

liquibase --changelog-file=changelog.xml rollback-one-changeset-sql --changeset-author="LiquibaseProUser" --changeset-id="createProc-proschema" --changeset-path=changelog.xml

For more command specific help, type liquibase rollback-one-changeset-sql --help into the command prompt.

rollback-one-changeset-sql 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.

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
--output-file

Specifies the file path to where the SQL output will be written

Optional *

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

* If not specified, the SQL output goes to STDOUT.

rollback-one-changeset-sql command attributes

Parameter Definition Requirement
--changeset-id

The changeset ID from the changelog.

Required
--changeset-author

The name of the author for the changeset.

Required
--changeset-path

The path to the changelog containing the changeset you want to roll back.

Required
--rollback-script

The path to the script to use to perform the rollback.

Optional **

** This option is only needed if the rollback is not already defined in the changelog, and if it is not a rollback that is automatically provided by Liquibase.

Output

When successful, the rollback-one-changeset-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
rollback-one-changeset executed for DBUSER@jdbc:h2:tcp://localhost:9090/mem:dev
-- Lock Database
UPDATE PUBLIC.DATABASECHANGELOGLOCK SET LOCKED = TRUE, LOCKEDBY = 'DESKTOP-SQVSSV2 (192.168.1.179)', LOCKGRANTED = NOW() WHERE ID = 1 AND LOCKED = FALSE;

-- *********************************************************************
-- Rollback changeset 'example-changelog.sql::1::your.name'
-- *********************************************************************
-- Change Log: example-changelog.sql
-- Ran at: 5/10/22, 4:31 PM
-- Against: DBUSER@jdbc:h2:tcp://localhost:9090/mem:dev
-- Liquibase version: 4.9.1
-- *********************************************************************

-- 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-changeset-sql' was executed successfully.

Like what you see? Try this command in Pro for Free.