Liquibase Secure Platform

5.0 User guide

Get the most out of your tools. From everyday tasks to advanced workflows, the User guide shows you how to work efficiently and effectively with our platform.

Liquibase License Tracking

Enable Liquibase License Tracking

Produce the Liquibase Secure License Tracking Report

Changelogs

Introduction to Liquibase

What is a Changelog?

Changelog examples

SQL changelog example

XML changelog example

JSON changelog example

YAML changelog example

Formatted Mongo changelog example

Changesets

What is a Changeset?

When should I use context and label attributes?

What is a Changeset checksum?

Liquibase concepts

What are attributes?

What are preconditions?

What is property substitution?

How does Liquibase find files?

What is the liquibase.properties file?

What are Liquibase environment variables?

Use environment variables to control the amount of log information

What are environment variables in Docker?

What are JAVA_OPTS environment variables?

How does Liquibase handle data types?

How do I manage an offline database?

How do I trim my changelog?

Assess logs to understand changelog efficiency

Use UUID and load data

How do I include and exclude database objects?

Run the include-objects attribute

Run the exclude-objects attribute

Generate a changelog with diff-types

What is drift detection?

Diff multiple schemas in Liquibase

Generate SQL to update database schemas

What is stored logic?

How does Liquibase handle security?

What data does Liquibase collect and how is it used?

FAQ

Liquibase Secure Developer VS Code extension

Install and configure the Liquibase Secure Developer VS Code Extension

Run commands in the Liquibase Secure Developer VS Code extension with the Command Palette

Run Liquibase Secure Developer commands with the Context menu

Tracking tables

What is the DATABASECHANGELOG table?

What is the DATABASECHANGELOGHISTORY table?

What is the DATABASECHANGELOGLOCK table?

Limitations

What are the COTS database limitations?

What are the memory limits on inspecting large schema?

CI/CD Workflows

Use GitHub actions with Liquibase

Rollback

What is a rollback?

Create custom rollback statements in Liquibase

What automatic rollbacks does Liquibase support?

What are targeted rollbacks?

Liquibase Flow files

What is a Flow file?

What are Flow conditionals?

Use Shell commands in Flow files

Exit a Flow file

What is a Flow variable?

What are advanced Flow files?

Native executors

Configure changesets to use native executors

What are the benefits of using native executors?

Best practices when using native executors

Observability

What is Liquibase Observability?

What are operation reports?

What is the drift report?

What is the update report?

What is the rollback report?

How do I enable operation reports?

What is the checks report?

Use drift reports in your CI/CD pipeline

What parameters can I use with operation reports?

Structured Logging

What is Structured logging?

What are structured logging keys?

Enable structured logging

Analyze and use Structured log data

Disable structured logging

What is custom data in Structured logging?

Remote Files

What are the rules for remote file paths?

What are the rules for using search-path with remote files?

What Liquibase commands are used for remote files?

Secrets management

What are Liquibase Secrets management extensions?

What is the Liquibase HashiCorp Vault extension?

Use the Liquibase HashiCorp vault extension

Policy checks

What are policy checks?

Automatically create a snapshot and run checks

Manually create a snapshot and run checks

Run a policy check

Customize a Policy check

Disable Policy checks

Filter the Checks table output

Use Git Bash with Policy checks

Create a new checks settings file

Create an additional checks settings file

Use the checks settings file

Severity and exit codes in Policy check automation

Set policy check severity and exit codes

Policy checks JSON object

Verify naming conventions in your database

What are Check chains?

Create a Check chain

Use your check chain

Troubleshooting your check chain

What are policy checks packages?

Create a checks package file

Use the checks package file

What are Policy check package paths?

Custom policy checks

What is a Liquibase Secure Custom policy check?

Create a custom policy check

Configure a Custom policy check

Implement Liquibase Secure Custom policy checks

What are some examples of Custom policy check scripts?

What are Liquibase Python modules?

Write Dynamic Status Messages for Custom policy checks

What is Custom policy check property substitution?

Apply Property substitution in Custom policy checks

Set Up a Custom Python Virtual Environment for Liquibase Policy Checks

Use Custom Policy Checks with Docker

What default Policy checks does Liquibase offer?

What generic changelog policy checks does Liquibase offer?

Custom policy checks library

billingMode

Check Buffer Pool

Collection Camel Case

Collection Must Have Validator

Column Default Value

Count Rows

Create Index Count

Create Table Space

Current Schema Only

Delete Without Where

Fk Names

Identifiers Without Quotes

Index Different Tablespace

Pk Names Pg

Pk Names

Pk Tablespace

Table Column Disallow

Table Names Uppercase

timestampColumnName

varcharDataIntegrity

Varchar Max Size

Varchar Preferred

Regex Custom policy checks library

CRQLabelRequired

enumerationListContext

MultipleCreateProceduresNotAllowed

MultipleCreateTablesNotAllowed

MultipleDropsNotAllowed

MultipleGrantsNotAllowed

NoDataDmlStatements

NoDbclString

noSelectStar

NoSelect

OnlySpecificSchemasAllowed

TablesMustHaveCreateTableOnly

TablesMustHavePkOrBeNamedNpk

UppercaseTableNames

viewsMustHaveCreateReplaceViewOnly

Cassandra Regex Custom policy checks library

CreateTableMustHaveIFNOTEXIST

CreateTableMustHavePrimaryKey

CreateTableMustHaveSystemKeyFile

DynamoDB Regex Custom policy checks library

DynamoDeleteDynamoTableCheck

DynamoDeleteGlobalSecondaryIndexCheck

DynamoChangetypeAttributes

MariaDB Regex Custom policy checks library

CannotModifyUsersOrRoles

PreventLockingColumnOrIndex

MongoDB Regex Custom policy checks library

mongoCrCollectionValidatorChk

Set the SEARCH_STRING to this valid regular expression:

mongoCreateIdxWarning

mongoNoDeleteMany

mongoNoDropCollection

mongoNoDropIndex

mongoNoMergeAggregation

mongoNoRenameCollection

mongoNoUpdateMany

Oracle Regex Custom policy checks library

CreateTableMustHaveOneGrant

CreateTableMustHavePartition

CreateTableMustHavePrimaryKey

CreateTableNoCompressAdvanced

CreateTableNoCompressFor

CreateTableWithCertainColumnRequiresSequence

CreateTableWithCertainColumnRequiresTrigger

ExecuteImmediateWarning

NoAlterUser

NoCreateRole

NoCreateUser

NoDBLinks

NoDeleteWithoutWhere

NoGrantAll

NoGrantsToPublic

NoGrantsToSystem

NoSystemSchemaChanges

Snowflake Regex Custom policy checks library

CreateObjectCheck

CreateTableMustHaveDataRetention

DatabaseNameNotAllowed

DoNotUseQaOrProdDatabases

DatabaseNameNotAllowed

SQL Server Regex Custom policy checks library

CreateProcedureMustHaveGrantExecute

CreateTableMustHavePrimaryKey

NoAlterIndex

NoAlterProcedure

NoAlterTable

NoBulkInsert

NoCreateTable

NoCursor

NoDataDmlStatements for SQL Server

NoDeleteWithoutWhere

NoExecute

NoGrantExceptGrantExecute

NoGrantWithGrantOption

NoOpenDataSource

NoOpenRowSet

OnlyTempTableDropAllowed

Changelog checks library

ChangeDropColumnWarn

ChangeDropTableWarn

ChangesetAttributesAndValue

ChangesetAttributesSetTrueOrFalse

ChangesetCommentCheck

ChangesetContextCheck

ChangesetLabelCheck

ChangeTruncateTableWarn

CheckRunInTransactionValue

DetectChangeType

EndDelimiterExistsWhenPatternExists

FormattedSqlHeaderRequired

MaxAffectedRowsAllowedDelete

MaxAffectedRowsAllowedInsert

MaxAffectedRowsAllowedUpdate

ModifyDataTypeWarn

MongoChangetypeAttributes

OneChangePerChangeset

PrimaryKeyOnCreateTable

PatternAFollowedByPatternB

PatternAPrecededByPatternB

PatternANotFollowedByPatternB

PatternANotPrecededByPatternB

RequireChangesetIDisUUID

RollbackRequired

SQLGrantAdminWarn

SqlGrantOptionWarn

SqlGrantSpecificPrivsWarn

SqlGrantWarn

SqlRevokeWarn

SqlSelectStarWarn

SqlUserDefinedPatternCheck

UserDefinedContextCheck

UserDefinedLabelCheck

WarnOnUseDatabase

Changelog database checks library

ObjectNameMustMatch

ObjectNameMustNotMatch

OracleReservedKeywords

PostgresNonReservedKeywords

PostgresReservedKeywords

SQLServerFutureReservedKeywords

SQLServerODBCReservedKeywords

SQLServerReservedKeywords

TableColumnLimit

TableCommentCheck

TableCommentPatternCheck

Database checks library

CheckTablesForIndex

ConstraintMustExist