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 |

Liquibase Community 4.9.1 by Liquibase
Rolling Back Changeset: example-changelog.sql::3::other.dev
Rolling Back Changeset: example-changelog.sql::2::your.name
Rolling Back Changeset: example-changelog.sql::1::your.name
----------------------------------------------------------------------
View a report of this operation at https://hub.liquibase.com/r/CHqKuCjWFc
* IMPORTANT: New users of Hub first need to Sign In to your account
with the one-time password sent to your email, which also serves as
your username.
----------------------------------------------------------------------
Liquibase command 'rollback-count' was executed successfully.