rollbackCount <value> command

The rollbackCount <value> command reverts a specified number of changesets, where <value> is the number of changesets you want to revert sequentially on your database.


The rollbackCount <value> 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 rollbackCount 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 rollbackCount 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 rollbackOneChangeSet command.

The impacts of rollbackCount <value>

The use of rollbackCount <value> 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.

Please look for unintended consequences before using this command.

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

Running the rollbackCount <value> command

Before running the rollbackCount <value> command, you can run the history command to see all your previously executed changes.

Note: rollbackCount <value> works from the bottom of the list toward the top.

To run the rollbackCount <value> command, you need to specify your driver, class path, URL, and user authentication information in your file. You can also specify these in your command line.

Then run the rollbackCount <value> command:

liquibase –changeLogFile=mychangelog.sql rollbackCount 1

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

rollbackCount <value> global attributes

Attribute Definition Requirement
--changeLogFile 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

rollbackCount <value> command attributes

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