github databricks/dbt-databricks v1.12.2

3 hours ago

dbt-databricks 1.12.2 (Jul 9, 2026)

Features

  • Add catalogs.yml v2 support (requires use_catalogs_v2: true in dbt-core) (#1440)
  • Add skip_optimize model config to opt out of the post-materialization OPTIMIZE call without dropping zorder / liquid_clustered_by / auto_liquid_cluster from the table definition. Useful when OPTIMIZE is delegated to Predictive Optimization or scheduled out of band. Complements the existing run-wide DATABRICKS_SKIP_OPTIMIZE var by allowing project-, folder-, or model-level opt-out via standard dbt config inheritance (#703).
  • Support the connector's Rust kernel backend via connection_parameters: {use_kernel: true} for SQL warehouses, with personal access token or Databricks OAuth (M2M/U2M) auth (requires databricks-sql-connector[kernel] on Python 3.10+; Azure service principals are not supported by the kernel) (#1576)

Fixes

  • Stop dropping existing constraints on incremental runs when contract.enforced is false (#1557)
  • Recognize the skip_not_matched_step merge config in the adapter config schema. It was previously declared with a typo (skip_non_matched_step); the merge macro already read the correct key, so merge behavior is unchanged (#1562).
  • Honor the expression field on primary_key constraints on the V1 materialization path. A primary key declared with expression: RELY (or any trailing clause) previously had its expression silently dropped. (#1551)
  • Apply column-level databricks_tags for incremental models on the V1 materialization path (#1520 closes #1307)
  • Raise a DbtRuntimeError when a Python model job run terminates with a non-success result_state (e.g. FAILED/TIMEDOUT) instead of returning silently (#1477)
  • Fix PK/FK constraints declaring an expression (e.g. RELY) being dropped and re-added on every incremental run. Regression: changing the expression on an existing PK/FK (RELYNORELY, or an expression-form FK's target) is no longer applied on incremental runs — use --full-refresh. (#1552 closes #1513)
  • Honor incremental_apply_config_changes in the V1 incremental merge path, allowing users to skip metadata diff queries (tags, column_tags, constraints, column_masks, tblproperties, describe_extended) when set to false. Matches the existing V2 behavior. (#1467 partially resolves #1402)
  • Fix column-level databricks_tags on Unity Catalog views updated via ALTER (view_update_via_alter: true) (#1526 closes #1525)
  • Apply tblproperties to metric_view models at create time, not only on a later alter/replace run (#1530 closes #1527)
  • Only emit INSERT ... BY NAME in the replace_where/microbatch strategies on DBR 18.0+ (and SQL warehouses), since older clusters reject the BY NAME ... REPLACE WHERE combination with a parse error (#1539 resolves #1532)
  • Fix materialized views always rebuilding because Databricks-internal tblproperties were read as configuration drift; the diff now compares only the configured properties (#1350 closes #1314).
  • Stop metric views with view_update_via_alter from re-issuing a redundant ALTER VIEW ... AS on every run (#1546)
  • Fix column comments being permanently dropped from views when view_update_via_alter issues ALTER VIEW AS; reapply persisted column comments after the query update (#1357)

Under the Hood

  • Raise the databricks-sql-connector upper bound to <4.3.1 to support 4.3.0 (#1518)
  • Raise the dbt-adapters upper bound to <1.25.0 (#1507)
  • Raise the databricks-sdk upper bound to <0.118.0 to pick up 0.117.0, which fixes WorkspaceClient construction failing with CONTEXT_UNAVAILABLE_FOR_REMOTE_CLIENT on Spark Connect clusters (#1517 closes #1252)
  • Raise the dbt-core upper bound to <1.11.13 to include dbt-core 1.11.12 (#1578)
  • Instrument add_query, get_relation_config, is_uniform, has_dbr_capability, and is_cluster for dbt's record/replay framework (test-only, no runtime impact) (#1508)
  • Add a weekly Kernel Integration Tests workflow that runs the functional suite against the SQL-warehouse profile through the connector's Rust kernel backend (DBT_DATABRICKS_USE_KERNEL=1) (test-only, no runtime impact) (#1576).
  • Substantially expand adapter test coverage across the functional and unit suites: broaden functional coverage for materializations (table replace-in-place, view→table conversion), incremental strategies and full-refresh recreate, constraints and row filters, tags and column tags, streaming tables, materialized and metric views, copy_into, clone, seeds, SQL UDFs, split_part, sync_all_columns type widening, catalog table_format, and Python models — shifting assertions to server-observable state rather than compiled SQL or log output; add unit coverage for the live event/logging classes; make stateful functional tests rerun-safe; and add CI upkeep (a weekly Python-model notebook-folder purge and a longer unit-test timeout) (test-only, no runtime impact). (#1511, #1512, #1514, #1521, #1522, #1523, #1524, #1528, #1529, #1531, #1533, #1534, #1535, #1536, #1537, #1538, #1541, #1542, #1543, #1544, #1545, #1548, #1550, #1553, #1558, #1559, #1564, #1565, #1566, #1568, #1569, #1570, #1571, #1573, #1579, #1580, #1581, #1582)

New Contributors

Full Changelog: v1.12.1...v1.12.2

Don't miss a new dbt-databricks release

NewReleases is sending notifications on new releases.