Liquibase Enterprise was formerly known as Datical DB.

Baseline a Project

Baselining a project is the process of capturing the "current state" snapshot of all databases for a project/schema. Once baselined, you will review the results to

  • Label any changes that are in-process (in some databases, but not yet others) so they can be deployed to the remaining environments
  • Identify inconsistencies across databases (missing or extra objects)

Datical DB supports 3 types of baselining

  1. Full Baseline
  2. Partial Baseline
  3. No Baseline

The goal of the full-baseline is to capture the full state of your project, label any in-process changes, and clean up any inconsistencies in your project databases. While this process takes time, it gives you the knowledge that any inconsistencies that have emerged over time have been fixed, and that all changes are accounted for.

The goal of the partial-baseline is to speed up provisioning, capture the full state of your project and label any in-process changes. However, it postpones the cleanup of database inconsistencies, which can be performed when time is available. Until the cleanup process is complete, you might run into forecast/deployment errors as a result of any unexpected or missing objects in a database.

The goal of the no-baseline option is to speed up provisioning and start using Datical DB to deploy changes quickly. With this process, you will not be capturing the current state of your databases. Without this information in Datical, you will be responsible for figuring out what changes have already been deployed and for identifying database inconsistencies over time as you deploy changes.

Use the Project Baseline Script

This script will baseline all of the databases in each of the pipelines.

How To Use project_baseline.groovy

hammer groovy project_baseline.groovy [baselinePrimaryDBOnly] [skip | force] [noSync] [zip] 


Required Parameters


None



Optional Parameters

 

baselinePrimaryDBOnly

Flag to only baseline the last DB in the first pipeline

skip | force

  • skip - Flag to skip any table that has already been baselined
  • force - Flag to remove any pre-existing DATABASECHANGELOG and DATABASECHANGELOGLOCK tables (use with caution)

noSync

Flag to optionally NOT run changelogSync on each of the Reference DBs

zip

Flag to create a zip file of the baselined project

useStorageOptions

Flag to enable storage options during baselining. The default is to not use storage options during diffChangelog

skipExtraObjects

Flag to skip the collection of objects not natively supported by Datical DB (grants/revokes, user defined types, materialized views, and database links)

Prerequisites

  • Ensure that the Datical DB CLI directory is in your path. Otherwise, you will need to specify the full path to the CLI tool – hammer.

Example on Windows

% cd <datical_working_dir>/<desired_project>
% hammer groovy "<windows_script_path>\project_baseline.groovy" force zip 

Example on Linux

% cd <datical_working_dir>/<desired_project>
% hammer groovy "/home/user/scripts/project_baseline.groovy" force zip

Results

  1. All connections are validated
  2. All project databases are baselined and tagged appropriately



Copyright © Liquibase 2012-2022 - Proprietary and Confidential