Liquibase Enterprise was formerly known as Datical DB.

Built-in Forecast Checks

When you run a forecast of changes, the Forecast phase runs in two parts:

  1. Run built-in forecast checks (internal rules), listed here. Forecasting fails immediately if any check is not passed. 
  2. Run rules in the <project>/Rules/Forecast folder

See also Rule Stages and Objects.

addAutoIncrement

  • Table should exist
  • Columns should exist

addCheckConstraint

  • Table should exist
  • Constraint name should be unique

addColumn

  • Table should exist
  • New columns must not exist
  • New columns must have data types

addDefaultValue

  • Table should exist
  • Columns should exist

addForeignKeyConstraint

  • Table should exist
  • Base columns should exist
  • Reference columns should exist
  • Constraint name should not exist

addLookupTable

  • Table should not exist

addNotNullConstraint

  • Table should exist
  • Constraint should be unique (unless MySQL)

addPrimaryKey

  • Table should exist
  • Columns should exist
  • Primary key should not exist

addUniqueConstraint

  • Table should exist
  • Constraint should not exist

alterSequence

  • Sequence should exist

createFunction

  • New function should not exist, unless CREATE OR REPLACE is specified

createIndex

  • Index should not exist
  • Table should exist
  • Columns should exist
  • TABLESPACE specification must use correct case when enclosed in double quotes

createPackageBody

  • New package body should not exist, unless CREATE OR REPLACE is specified

createPackage

  • New package should not exist, unless CREATE OR REPLACE is specified

createProcedure

  • New procedure should not exist, unless CREATE OR REPLACE is specified

createSequence

  • Sequence should not exist

createSynonym

  • Synonym should not exist, unless CREATE OR REPLACE is used

createTable

  • Table should exist
  • TABLESPACE specification must use correct case when enclosed in double quotes

createTrigger

  • Trigger should not exist, unless CREATE OR REPLACE is specified

createView

  • New view should not exist
  • New view name should not be used by an existing table

customChange

  • None

disableCheckConstraint

  • Table should exist
  • Check constraint should exist

disableTrigger

  • Trigger should exist

dropAllForeignKeyConstraints

  • Table should exist

dropCheckConstraint

  • Table should exist
  • Check constraint should exist

dropColumn

  • Table should exist
  • Column must exist

dropDefaultValue

  • Table should exist
  • Columns should exist

dropForeignKeyConstraint

  • Table should exist
  • FK Constraint should exist

dropFunction

  • Function should exist

dropIndex refactoring

  • Table should exist
  • Index should exist

dropNotNullConstraint

  • Table should exist
  • Constraint should exist

dropPackageBody

  • Package body should exist

dropPackage

  • Package should exist

dropPrimaryKey

  • None

dropProcedure

  • Procedure should exist

createSequence

  • None

dropSynonym

  • Synonym should exist

dropTable

  • Table should exist

dropTrigger

  • Trigger should exist

dropUniqueConstraint

  • None

enableCheckConstraint

  • Table should exist
  • Check constraint should exist

enableTrigger

  • Trigger should exist

loadData

  • None

loadUpdate

  • None

mergeColumns

  • The table should exist

modifyDataType

  • Table should exist
  • Column should exist
  • (Oracle-only):  WARN if data exists in the column

modifySql

  • None

renameColumn

  • Table should exist
  • Original column must exist
  • New column must not exist

renameTable

  • Original table should exist
  • New table should exist

renameTrigger

  • Original trigger should exist

renameView

  • Original view should exist
  • New view should not exist
  • New view name should not match an existing table

sqlFile

  • None

sql

  • None

Copyright © Liquibase 2012-2022 - Proprietary and Confidential