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
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
Download the drivers needed for both Teradata and Liquibase.
To use Liquibase and Teradata, you need two JAR files:
Place your JAR files in the liquibase/lib directory.
(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>Test your connection
Ensure your Teradata database is configured. See Teradata Quickstarts for more information.
Specify the database URL in the
liquibase.propertiesfile (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
Create your changelog file
Create a text file called changelog (
.xml,.sql,.json, or.yaml) in your project directory and add a changeset.If you have already created a changelog using the
init projectcommand, 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>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.
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.
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.