Liquibase Enterprise was formerly known as Datical DB.

Tracking Tables

Required for Liquibase Enterprise.
Tracking tables are created in every database managed by Liquibase Enterprise and track the deployment status of change sets in the change log for the database. The change log represents the state of the database as a set of all changes (change sets) used to achieve the current state. When you create the project, you can also specify where to put the tracking tables that Liquibase Enterprise uses for the project. Tracking table location depends on how the contents of the project are configured (single-schema or multi-schema).

  • Single schema projects - use the same schema as the database changes.
  • Multi-schema projects - create or identify a separate schema to use for the tracking tables. 


DATABASECHANGELOG - a database representation of the changelog file (changelog.xml), which is kept in the project file hierarchy.

Note: If running Liquibase Enterprise in an environment with replication enabled, refer to:
Troubleshoot DATABASECHANGELOG Replication Error


DATABASEAHANGELOGLOCK - locking table used to manage access to the changelog table.

Liquibase Enterprise creates and uses a DATICAL_SPERRORLOG table in the Liquibase Enterprise tracking schema. It is re-created as needed when a sqlplus change is deployed.

Manually create DATICAL_SPERRORLOG table

Note: This functionality applies to Oracle users on Liquibase Enterprise version 8.1 and later.

 

The DATICAL_SPERRORLOG table is used to capture output for scripts executed using sqlplus during a deployment.
You will want to create this table manually if:

  1. Liquibase Enterprise created tables need to exist in a specific table space, that is different than the default table space used to connect.
  2. If a user does not have permission to create tables or drop tables.

If this is the case, you can manually create a DATICAL_SPERRORLOG table.

Steps to create a DATICAL_SPERRORLOG table

1. Create the DATICAL_SPERRORLOG table in the tracking schema of the project.

2. Be sure to do this on all environments (every step / db Def in the project)

CREATE TABLE DATICAL_TRACK.DATICAL_SPERRORLOG (username VARCHAR(256), timestamp TIMESTAMP, script VARCHAR(256), identifier VARCHAR(256), message CLOB, statement CLOB)

Role of Tracking Tables in Status Operations

Tracking tables indicate the current state of the database. Each changeset that is deployed to a managed database (step, context) has an entry in the tracking table for that database.

When you use the status command, it compares the changesets in the changelog in the REF database to the tracking tables in the database for the step. 



Copyright © Liquibase 2012-2022 - Proprietary and Confidential