MultipleDropsNotAllowed

MultipleDropsNotAllowed is a custom policy check that tells Liquibase multiple DROP statements are not allowed in a Changeset.

regex: (?is)[\t\r\n\s]*\bdrop\b[\t\r\n\s]+.*[\t\r\n\s]+\bdrop\b[\t\r\n\s]+

Before you begin

Scope

Database

changelog

Relational

  • Liquibase 4.29.0+

  • Python 3.10.14+

  • Configure a valid Liquibase Pro license key

  • Create a Check Settings file

  • Ensure the Liquibase Checks extension is installed. In Liquibase 4.31.0+, it is already installed in the /liquibase/internal/lib directory, so no action is needed.

  • If the checks JAR is not installed, download liquibase-checks-<version>.jar and put it in the liquibase/lib directory.

    • Maven users only:

      Add this dependency to your pom.xml

      file: <dependency> <groupId>org.liquibase.ext</groupId> <artifactId>liquibase-checks</artifactId> <version>2.0.0</version> </dependency>

  • Java Development Kit 17+ (available for Open JDK and Oracle JDK)

  • Linux, macOS, or Windows operating system

Procedure

These steps describe how to create the Custom Policy Check. It does not exist by default in Liquibase Pro.

1

Run this command in the CLI:

liquibase checks customize --check-name=SqlUserDefinedPatternCheck
2

Give your check a short name for easy identification

Use up to 64 alpha-numeric characters only.

Title the check:
 MultipleCreateProceduresNotAllowed
3

Set the Severity to return a code of 0-4 when triggered.

These severity codes allow you to determine if the job moves forward or stops when this check triggers. Learn more here: Use Policy Checks in Automation: Severity and Exit Code options: 'INFO'=0, 'MINOR'=1, 'MAJOR'=2, 'CRITICAL'=3, 'BLOCKER'=4

4

Set the SEARCH_STRING to this valid regular expression:

(?is)[\t\r\n\s]*\bcreate\b[\t\r\n\s]+.*\bprocedure\b[\t\r\n\s]+.*[\t\r\n\s]+\bcreate\b[\t\r\n\s]+.*\bprocedure\b[\t\r\n\s]+
5

Set the SEARCH_STRING (options: a string, or a valid regular expression)

Regular expression
(?i:crq\d+)
5

Set the MESSAGE to display when a match for the regular expression <SEARCH_STRING> is found in a Changeset.

Example: Error! Multiple CREATE PROCEDURE statements not allowed in a single changeset. Only a single CREATE PROCEDURE statement is allowed.

6

Set STRIP_COMMENTS to true if you want to remove the comments from the output.