DetectChangeType

This check warns a user when a changeset includes a Change Type listed by the user as forbidden.

About DetectChangeType
Liquibase version required 4.19.0+
Scope (--checks-scope) changelog
Default status enabled
Default severity (exit code) 0 ("INFO")
Customizable settings Yes (dynamic)

Uses

Use the check to enhance deployment control of specific changesets by warning you if a forbidden Change Type is present. This way changesets do not violate policy by dropping tables or columns. 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.

Note: This check applies only to model-based changelogs such as XML, YAML, and JSON. It does not apply to SQL changelogs.

Use DetectChangeType

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 dynamic, meaning you can customize its settings. See the table on this page for more information.

  1. If you want to customize any default values of this check, run the customize command:
  2. liquibase checks customize --check-name=<string>
  3. When finished, verify that your configuration is correct by running the show command:
  4. liquibase checks show --check-name=<string>

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