rollback-count

The rollback-count command sequentially reverts a specified number of changesets on your database.

Uses

The rollback-count command is used when you want to roll back changes sequentially, starting with the most recent changes and working backward until the value specified is reached.

The image below shows three changesets: changeset a, changeset b, and changeset c. Running the command rollback-count 3, rolls back the last three changesets.

So, if you have changeset a, b, c, and only changeset a is your target, you have to run the rollback-count 3 command to get rid of that specific changeset.

If you want to revert changeset a without having to roll back changeset b and changeset c as well, you can do it with the help of the rollback-one-changeset command.

The impacts of rollback-count

The use of rollback-count comes with risk of removing all changes depending on the value specified. Also, there is an additional impact to the DATABASECHANGELOG table. When any change is rolled back, the row associated with that change is deleted from the DATABASECHANGELOG table.

Look for unintended consequences before using this command.

The best practice is to run the rollback-count-sql command helper command because it allows you to inspect the rollback-count SQL and search for any potential mistakes before you execute the rollback-count <value> command.

Running the rollback-count command

Before running the rollback-count command, you can run the history command to see all your previously executed changes.

Note: rollback-count works from the bottom of the list toward the top.

To run the rollback-count command, specify the driver, classpath, and URL in the Liquibase properties file. For more information, see Specifying Properties in a Connection Profile. You can also specify these in your command line.

Then run the rollback-count command:

liquibase --changelog-file=mychangelog.sql rollback-count 1

Note: Enter the name of the changelog and value you want to use in place of mychangelog.sql and 1.

rollback-count global attributes

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

* Liquibase will check nested changelogs for definitions of the changesets to rollback

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

rollback-count command attributes

Attribute Definition Requirement
--value The integer indicating the number of changes you want to roll back Required