SqlUserDefinedPatternCheck

Last updated: March 23, 2026

Allows user-defined custom Regex patterns or specific text strings to search for within SQL code, enabling enforcement of organization-specific coding standards, both detecting prohibited patterns or proving inclusion of required patterns, building an audit trail of development practices.

Uses

Property

Value

Liquibase version required

4.5.0+

Scope (--checks-scope)

changelog

Default status

disabled

Default severity (exit code)

0 ("INFO")

Customizable settings

Yes (dynamic)

Before you begin

  1. Ensure that you have correctly specified your Liquibase Secure license key.

  2. Ensure that the --checks-scope parameter includes the scope of this check.

Changelog checks prerequisites

loading

loading

loading

loading

loading

Procedure

1

Enable

This check is disabled by default. To enable it, run the checks enable command:

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

When you try to enable the check, Liquibase displays the following message:

This check can not be enabled directly because one or more fields does not have a default value. Create a copy of this check and initiate the customization workflow.

Liquibase then prompts you to specify a name for the new check. By default, the name of the copy is <CheckName>1. You can use the default value by pressing Enter or you can specify a custom name.

2

Customize

This check is dynamic, meaning you can customize its settings. See the table on this page for more information.

1. Once you've enabled the check, follow the steps in the CLI to set new values.

Default values are shown in [brackets]. You can use these by pressing Enter. Alternatively, specify custom values. If a customization setting does not have a default value, you must specify custom values.

2. When finished, verify that your configuration is correct by running the checks show command.

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

3. If you need to make any other changes, run the checks customize command:

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

Note: If you want to create another variant of this check with different settings, use the checks copy command to create a copy of the original check and then use the checks customize command to customize it.

3

Run

To run the check, use the checks run command.

loading

loading

Customization settings

In Liquibase 4.27.0+ you can choose to enable the PATH_FILTER option. This can be used to filter all changesets in changelogs in a specific directory that contain a specified string or regex.

Configurable Filter Option

Value

Path

PATH_FILTER_REGEX

String or Regex

Relative

Compatible with:

S3 and GitHub paths

include/includeAll changelogs

changelogs using relative paths

Example output

Customization complete. Review the table below to confirm your changes. ... +-------------------------------------+------------+----------+----------+--------------------------------+--------------------------------+ | SqlUserDefinedPatternCheck | changelog | disabled | 0 | SEARCH_STRING = null | This check scans SQL for the | | | | | | MESSAGE = A match for regular | presence of specific patterns | | | | | | expression <SEARCH_STRING> was | in specified changelog paths, | | | | | | detected in Changeset | and warns the user when they | | | | | | <CHANGESET>. | are found. | | | | | | STRIP_COMMENTS = true | | | | | | | PATH_FILTER_REGEX = null | | +-------------------------------------+------------+----------+----------+--------------------------------+--------------------------------+ Liquibase command 'checks enable' was executed successfully.

Customization settings

Configurable Filter Option

Value

Description

PATH_FILTER_REGEX

String or Regex

Add a relative path for the files you would like to run the check against.

Compatible with:

- S3 and GitHub paths

- include/includeAll changelogs

- changelogs using relative paths

SPLIT_STATEMENTS

Boolean

Split multiple SQL statements on the delimiter and evaluate each individually.

Example output

loading