Introducing Agent Safe Governance for the AI Era

Best practices for a team deploying to multiple Teradata schemas

Last updated: June 18, 2026

A single team often manages database changes for several schemas in the same Teradata database. This document describes how to structure your Git repository and deploy with Liquibase so that changes apply to each schema in the correct order.

Structuring your Git repository

Dedicate a directory in your repository for database changes. In this directory, manage all of your scripts along with the changelog.xml file.

When a team deploys to multiple schemas, organize the repository so that there is a subdirectory for each schema. Each schema directory contains its own changelog.xml and the scripts for that schema.

loading

The team needs a main changelog file which controls the flow of all changes to all schemas. The main changelog references each schema’s changelog with an include.

Sample mainChangelog.xml for multi-schema repository
loading

Deploying with Liquibase

To deploy a single schema, run the status, update, and history commands against that schema’s changelog.

Be sure to:

  • Replace your_liquibase_path with the path to your Liquibase installation

  • Replace your_repo_url with the Git URL for your repository

  • Replace your_repo with the local repository directory name

  • Replace your_schema with the schema you are deploying to

  • Replace your_database_url with your Teradata connection URL. For example, jdbc:teradata://your_hostname/DATABASE=your_database

  • Replace your_username and your_password with your credentials

loading

To deploy several schemas in one run, loop over the schema names and pass each one with --default-schema-name. This deploys the same changelog structure to each schema in turn.

Be sure to:

  • Replace SchemaA SchemaB SchemaC with the space-separated list of schemas you are deploying to

  • Replace your_database_url with your Teradata connection URL

  • Replace your_username and your_password with your credentials

loading

Liquibase tracking tables

Liquibase automatically creates DATABASECHANGELOG and DATABASECHANGELOGLOCK tables (also called DBCL tables) for tracking deployments. These tables are created in the default schema for the user connecting to the database.

If you want your DBCL tables to be created in another schema, for example a dedicated schema for Liquibase tracking only, then you can use --liquibase-schema-name=your_schema to indicate your specific schema. You need to make sure that the service account allows creating DBCL tables in this schema and allows querying these tables.

  • --liquibase-schema-name=your_schema: The parameter specifies the schema to use for creating Liquibase objects, such as the DATABASECHANGELOG and DATABASECHANGELOGLOCK tracking tables.

  • --default-schema-name=your_schema: The parameter specifies the default schema name to use for the database connection.