Connect Liquibase with Teradata

Teradata Vantage Advanced SQL Engine is an analytic database engine. For more information, see Teradata Documentation.

Supported database versions

  • 20.0.x

  • 17.20.x

  • 17.10.x

Before you begin

  • Install Liquibase

  • Ensure you have Java installed. Liquibase requires Java to run. If you used the Liquibase Installer, Java is included automatically. Otherwise, you must install Java manually.

Procedure

1

Download the drivers needed for both Teradata and Liquibase.

To use Liquibase and Teradata, you need two JAR files:

2

Place your JAR files in the liquibase/lib directory.

3

(Maven users only) include the driver JAR as a dependency in your POM file.

To use Liquibase with Maven, you must instead include the driver JAR as a dependency in your pom.xml file. Using this information, Maven automatically downloads the driver JAR from Maven Central when you build your project.

Maven dependency example
<dependency>
  <groupId>com.teradata.jdbc</groupId>
  <artifactId>terajdbc4</artifactId>
  <version>20.00.00.22</version>
</dependency>
<dependency>
  <groupId>org.liquibase.ext</groupId>
  <artifactId>liquibase-teradata</artifactId>
  <version>4.29.1</version>
</dependency>
4

Test your connection

  • Ensure your Teradata database is configured. See Teradata Quickstarts for more information.

  • Specify the database URL in the liquibase.properties file (defaults file), along with other properties you want to set a default value for. Liquibase does not parse the URL. You can either specify the full database connection string or specify the URL using your database's standard JDBC format: url: jdbc:teradata://hostname/DATABASE=myDatabase

5

Create your changelog file

  1. Create a text file called changelog ( .xml, .sql, .json, or.yaml) in your project directory and add a changeset.

  2. If you have already created a changelog using the init project command, you can use that instead of creating a new file. When adding to an existing changelog, be sure to add only the changeset, not duplicate the changelog header.

Changelog file examples

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
  xmlns:pro="http://www.liquibase.org/xml/ns/pro"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
        http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd">
  <changeSet id="1" author="Liquibase">
    <createTable tableName="test_table">
      <column name="test_id" type="int">
        <constraints primaryKey="true"/>
      </column>
      <column name="test_column" type="INT"/>
    </createTable>
  </changeSet>
</databaseChangeLog>

6

Ensure your connection was successful

Navigate to your project folder in the CLI and run the Liquibase status command to see whether the connection is successful:

liquibase status --username=test --password=test --changelog-file=<your-changelog.xml>

Note: You can specify arguments in the CLI or keep them in the Liquibase properties file.

If your connection is successful, you'll see a message like this:

4 changesets have not been applied to <your_jdbc_url> Liquibase command 'status' was executed successfully.

7

Make a change to your database

Inspect the SQL with the update-sql command. Then make changes to your database with the update command.

liquibase update-sql --changelog-file=<changelog.xml> liquibase update --changelog-file=<changelog.xml>

If your update is successful, Liquibase runs each changeset and displays a summary message ending with:

Liquibase: Update has been successful.

8

Ensure that your database contains the test_table.

From a database UI tool, ensure that your database contains the test_table you added along with the DATABASECHANGELOG table and DATABASECHANGELOGLOCK table.

Your database connection is successful, and you are ready to begin deploying changes with Liquibase.