RollbackRequired

This check enforces the Liquibase best-practice recommendation to include rollbacks to every changeset.

Uses

Use the check to warn when a changeset does not contain a rollback, which can hamper efforts to restore to a previous database schema if problems are encountered either during or after deployments. When problematic changes are deployed to an environment, Liquibase can immediately rollback the change if a rollback was included. But, if not, the team will have to craft a new changeset and “roll-forward” to fix the issue, which is a valid problem mitigation strategy as well. This quality check, like other checks, can be configured with a severity level which returns an exit code designed to stop automated jobs, giving your team time to apply this Liquibase best practice.

Run the RollbackRequired check

To run the RollbackRequired check, ensure you have a Liquibase Pro license and the checks-scope property includes changelog. The checks-scope parameter is set in the default properties file, environment variable, or any standard method. Then, check the changelog to see if RollbackRequired is enabled.

Note: Please be aware that RollbackRequired only supports modeled changeset types. If you use this Quality Check with unmodeled changesets (formatted SQL changelogs as well as sql and sqlFile changeTypes), a message will appear stating the changeset was skipped.

Enable the RollbackRequired check by running the following command in the CLI:

liquibase checks enable --check-name=RollbackRequired
Short Name Scope Enabled Severity Customization Description
RollbackRequired changelog

false

Default value: 0

  • 'INFO' | 0
  • 'MINOR' | 1
  • 'MAJOR' | 2
  • 'CRITICAL' | 3
  • 'BLOCKER' | 4

none

This check triggers when a changeset does not have a rollback defined.