Docs/Engines/IBM Db2

IBM Db2

Db2 keeps DDL inside the transaction but needs an explicit commit afterwards, and stores unquoted identifiers upper-cased in the catalog.

type
db2
Driver
ibm_db_sa
DDL
Transactional
Identifiers
Upper-cased

Install

pip install "dblift[db2]"

Connection URL

ibm_db_sa://user:password@localhost:50000/APP

db2:// and db2+<driver>:// URLs are accepted and normalised to ibm_db_sa.

dblift.yaml

database:
  type: db2
  url: "ibm_db_sa://db.internal:50000/APP"
  schema: "APP"
  connection_timeout: 30

Engine settings

KeyDefaultEffect
schema—Sent as currentSchema on the connection.
collection—Package collection, sent as collection.
connection_timeout30Sent as connectTimeout.
extra_params{}Any other driver parameter, appended to the URL query.

Behaviour notes

DDL is transactional, with an explicit commit.

DBLift commits after DDL rather than relying on the driver.

Unquoted identifiers are upper-cased in the catalog.

Introspection compares against the upper-cased form.

Catalog reads end in a rollback.

Introspection closes its transaction explicitly.

The session is not put in autocommit.

Transactions are managed by DBLift.