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.
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
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_pathwith the path to your Liquibase installationReplace
your_repo_urlwith the Git URL for your repositoryReplace
your_repowith the local repository directory nameReplace
your_schemawith the schema you are deploying toReplace
your_database_urlwith your Teradata connection URL. For example,jdbc:teradata://your_hostname/DATABASE=your_databaseReplace
your_usernameandyour_passwordwith your credentials
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 SchemaCwith the space-separated list of schemas you are deploying toReplace
your_database_urlwith your Teradata connection URLReplace
your_usernameandyour_passwordwith your credentials
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 theDATABASECHANGELOGandDATABASECHANGELOGLOCKtracking tables.--default-schema-name=your_schema: The parameter specifies the default schema name to use for the database connection.