Policy checks library

Last updated: May 13, 2026

Browse the full library of Liquibase policy checks organized by type.

Changelog checks

  • ChangeDropColumnWarn

    ChangeDropColumnWarn is a policy check that warns a user when a column is being dropped so that they can ensure that such a schema change won't lead to unintentional loss of data and unrecoverable data loss.

  • ChangeDropTableWarn

    This check warns a user when a table is being dropped so that they can ensure that dropping the table won't lead to unintentional data loss.

  • ChangesetAttributesAndValue

    This check triggers when specified attributes do not match the user-supplied string or regex pattern.

  • ChangesetAttributesSetTrueOrFalse

    This check triggers when specified attributes do not match TRUE or FALSE, as configured by the user. It only applies to Boolean changeset attributes.

  • ChangesetCommentCheck

    This check enforces the Liquibase best-practice recommendation to assign comments to every changeset to document the purpose of a changeset for other/future consumers of this changelog.

  • ChangesetContextCheck

    This check enforces the Liquibase best-practice recommendation to assign a context to every changeset to provide better deployment control and to enhance traceability and granularity of deployments across changesets.

  • ChangesetLabelCheck

    This check enforces the Liquibase best-practice recommendation to assign labels to every changeset to provide better deployment control and to enhance traceability and granularity of deployments across changesets.

  • ChangeTruncateTableWarn

    This check warns a user when a table is being truncated so that they can ensure this change will not lead to unintentional data loss.

  • CheckRunInTransactionValue

    This check triggers when a changeset contains the user-specified runInTransaction value of true or false.

  • DetectChangeType

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

  • EndDelimiterExistsWhenPatternExists

    This check triggers when the following criteria are met:

  • FormattedSqlHeaderRequired

    All .sql Liquibase changelogs must begin with a --liquibase formatted SQL header. This header enables Liquibase's change tracking, auditing, and rollback features.

  • MaxAffectedRowsAllowedDelete

    This check triggers when the number of rows a SQL statement deletes exceeds the value of MaxAffectedRowsAllowed. The SQL statement is executed against the database and then rolled back.

  • MaxAffectedRowsAllowedInsert

    This check triggers when the Max Affected Rows Allowed value is exceeded by the number of rows inserted by a SQL statement. The SQL statement is executed against the database and then rolled back.

  • MaxAffectedRowsAllowedUpdate

    This check triggers when the number of rows a SQL statement updates exceeds the value of MaxAffectedRowsAllowed. The SQL statement is executed against the database and then rolled back.

  • ModifyDataTypeWarn
  • MongoChangetypeAttributes

    The MongoChangetypeAttributes changelog check validates whether a specified attribute of a Mongo change type is set to an exact value or pattern.

  • OneChangePerChangeset

    This check enforces the Liquibase best-practice of keeping individual changesets small by limiting them to one statement or change.

  • PrimaryKeyOnCreateTable

    This check warns when a create table action does not also include a primary key.

  • PatternAFollowedByPatternB

    The PatternAFollowedByPatternB Policy Check triggers on changesets in which user-supplied regular expression pattern A is followed by the user-supplied regular expression pattern B. This check is pre-configured, so users only need to supply the patterns and do not have to manually write regular expressions to look ahead in their changelog.

  • PatternAPrecededByPatternB

    The PatternAPrecededByPatternB Policy Check triggers on changesets in which user-supplied regular expression pattern A is preceded by the user-supplied regular expression pattern B.

  • PatternANotFollowedByPatternB

    The PatternANotFollowedByPatternB Policy Check triggers on changesets in which user-supplied regular expression pattern A is not followed by the user-supplied regular expression pattern B. This check is pre-configured, so users only need to supply the patterns and do not have to manually write regular expressions to perform negative lookaheads in their changelog.

  • PatternANotPrecededByPatternB

    The PatternANotPrecededByPatternB Policy Check triggers on changesets in which user-supplied regular expression pattern A is not preceded by the user-supplied regular expression pattern B. This check is pre-configured, so users only need to supply the patterns and do not have to manually write regular expressions to perform negative lookbehinds on their changelog.

  • RequireChangesetIDisUUID

    This check alerts you when a changeset ID does not follow the 8-4-4-4-12 pattern of UUID or GUID.

  • RollbackRequired

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

  • SensitiveInfoCheck

    Identifies multiple types of highly-sensitive Personally Identifiable Information (PII) including Financial, Banking, Personal, Location, Health, and Computer types of data, helping avoid data exposure, and supporting audit and authorization requirements in highly-regulated environments. Create focused checks by copying and customizing specific IDENTIFIERS for your specific data protection policies.

  • SQLGrantAdminWarn

    This check warns a user when a SQL contains 'GRANT' statements that include the 'WITH ADMIN OPTION' clause so that they can ensure that the privilege being granted won't lead to security issues or violate compliance regulations.

  • SqlGrantOptionWarn

    This check warns a user when SQL contains 'GRANT' statements that include the 'WITH GRANT OPTION' clause so that they can ensure that the privilege being granted won't lead to security issues or violate compliance regulations.

  • SqlGrantSpecificPrivsWarn

    This check warns a user when SQL contains GRANT statements that grant specific privileges to a user or role, so that they can ensure that the specific privilege being granted won't lead to security issues or violate compliance regulations.

  • SqlGrantWarn

    This check warns a user when a SQL contains GRANT statements so that they can ensure that the privilege being granted won't lead to security issues.

  • SqlRevokeWarn

    This check warns a user when a SQL contains 'REVOKE' statements so that they can ensure that the privilege being revoked won't lead to data access and dependency issues.

  • SqlSelectStarWarn

    This check warns a user when generated or raw SQL contains 'SELECT *' statements so that they can ensure selecting all fields from a table in a query is safe and necessary.

  • SqlUserDefinedPatternCheck

    This check scans SQL for the presence of specific patterns and warns the user when they are found.

  • UserDefinedContextCheck

    UserDefinedContextCheck confirms that a specific context or a context that matches a specific pattern is present on all changesets.

  • UserDefinedLabelCheck

    This check confirms that a specific label or a label that matches a specific pattern is present on all changesets.

  • WarnOnUseDatabase

    This check warns a user when generated or raw SQL contains 'USE DATABASE' directive.

Changelog database checks

  • ObjectNameMustMatch

    The ObjectNameMustMatch check allows you to confirm the listed object names conform to the supplied pattern.

  • ObjectNameMustNotMatch

    The ObjectNameMustNotMatch check allows you to confirm the listed object names conform to the supplied pattern and locate the object names that do not match so they can be corrected.

  • OracleReservedKeywords

    This check can be used to prevent Oracle's reserved keywords from being used in database object names. See the for complete list of keywords.

  • PostgresNonReservedKeywords

    This check disallows Postgres non-reserved keywords from being used in database object names. See the SQL Key Words Appenix for complete list of keywords.

  • PostgresReservedKeywords

    This check disallows Postgres reserved keywords from being used in database object names. See the SQL Key Words Appendix for complete list of keywords.

  • SQLServerFutureReservedKeywords

    This check disallows SQL Server's future reserved keywords from being used in database object names. See Reserved Keywords (Transact-SQL) for complete list of keywords.

  • SQLServerODBCReservedKeywords

    This check disallows SQL Server's ODBC reserved keywords from being used in database object names. See Reserved Keywords (Transact-SQL) for complete list of keywords.

  • SQLServerReservedKeywords

    This check disallows SQL Server reserved keywords from being used in database object names. See Reserved Keywords (Transact-SQL) for complete list of keywords.

  • TableColumnLimit

    The TableColumnLimit check allows you to ensure that no table described in a changelog or existing in a database target has more than a threshold number of columns.

  • TableCommentCheck

    The TableCommentCheck check allows you to flag any table that does not have a comment. Note that this is not a check for a Liquibase changelog comment.

  • TableCommentPatternCheck

    The TableCommentPatternCheck check triggers when specific user-supplied patterns are present in table comments.

Database checks

  • CheckTablesForIndex

    CheckTablesForIndex scans your target URL database tables to find tables which do not have an associated index.

  • ConstraintMustExist

    The ConstraintMustExist check allows you to specify an individual table or column by name to check that it has one or more specific constraints.