RollbackRequired

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

About RollbackRequired
Liquibase version required 4.7.0+
Scope (--checks-scope) changelog
Default status enabled
Default severity (exit code) 0 ("INFO")
Customizable settings No (static)

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 policy 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.

Use RollbackRequired

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

Prerequisites

  1. Ensure that you have correctly specified your Liquibase Pro license key.
  2. Ensure that the --checks-scope parameter includes the scope of this check.

For example:

--license-key=<string>
--checks-scope=<string>
globalArgs: { license-key: "<string>" }
cmdArgs: { checks-scope: "<string>" }
liquibase.licenseKey: <string>
liquibase.command.checksScope: <string>
liquibase.licenseKey: <string>
liquibase.command.checks.run.checksScope: <string>
JAVA_OPTS=-Dliquibase.licenseKey=<string> -Dliquibase.command.checksScope=<string>
JAVA_OPTS=-Dliquibase.licenseKey=<string> -Dliquibase.command.checks.run.checksScope=<string>
LIQUIBASE_LICENSE_KEY=<string>
LIQUIBASE_COMMAND_CHECKS_SCOPE=<string>
LIQUIBASE_LICENSE_KEY=<string>
LIQUIBASE_COMMAND_CHECKS_RUN_CHECKS_SCOPE=<string>

Enable

This check is enabled by default. To verify that it is currently enabled, run the show command:

liquibase checks show --check-name=<string>

Customize

This check is static, meaning it does not have any customization settings.

Run

To run the check, use the run command:

liquibase checks run --check-name=<string>
stages:
  Default:
    actions:
      - type: liquibase
        command: checks run
        cmdArgs: {check-name: <string>}

And then run the flow command on your flow file:

liquibase flow