Connect Liquibase to DB2 for zOS
Last updated: July 14, 2025
DB2 for z/OS is a relational database management system that runs on the mainframe. For more information, see IBM DB2 Documentation.
Supported versions
12.0.0
11.5.7+
Before you begin
For Liquibase Pro users, confirm that your license key is activated.
(Maven Users) The latest version of Liquibase includes a driver for this database in the
liquibase/internal/lib
directory. If you're not using Maven, you do not have to download or install anything to use Liquibase with IBM DB2 for zOS. If you are using Maven, you'll need to include the JDBC driver JAR file (Maven download) in your pom.xml file. See Add Liquibase extension with Maven.
Procedure
Configure the connection.
1. Confirm the configuration of the DB2 on z/OS database. Run the DISPLAY DATABASE command to display the status of DB2 databases.
2. 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 connection format:
url: jdbc:db2://<server_name>:<port>/<db_name>
Note: The URL for DB2 on z/OS may have different formats, such as jdbc:db2j:net:, jdbc:ibmdb:, and jdbc:ids:, depending on your connection type. For more information, see the URL format for the IBM Data Server Driver for JDBC and SQLJ type 4 connectivity.
Test connection
1. Create a text file called changelog
(.sql
, .yaml
, .json
, or .xml
) in your project directory and add a changeset.
If you already created a changelog using the init project
command, you can use that instead of creating a new file. When adding onto an existing changelog, be sure to only add the changeset and to not duplicate the changelog header.
--liquibase formatted sql
--changeset your.name:1
CREATE TABLE test_table (
test_id INT NOT NULL,
test_column INT,
PRIMARY KEY (test_id) NOT ENFORCED
)
2. Navigate to your project folder in the CLI and run the liquibase status
command to check whether the connection is successful:
liquibase status --username=test --password=test --changelog-file=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_connection_url
Liquibase command 'status' was executed successfully.
3. Inspect the deployment SQL with the update-sql
command:
sqlCopyEditliquibase update-sql --changelog-file=changelog.xml
If the SQL that Liquibase generates isn't what you expect, review your changelog file and make any necessary adjustments.
4. Execute the changes to your database with the update
command:
sqlCopyEditliquibase update --changelog-file=changelog.xml
If your update is successful, Liquibase runs each changeset and displays a summary message ending with:
bashCopyEditLiquibase: Update has been successful.
Liquibase command 'update' was executed successfully.
5. From a database UI tool, confirm that your database now contains the test_table
object, along with the DATABASECHANGELOG
and DATABASECHANGELOGLOCK
tables.
Now you're ready to start deploying database changes with Liquibase!