What's new, 9 min read, updated 13 October 2026

dbt v2 is here: what changed and how to upgrade

dbt v2 replaces the Python engine with a single fast Rust binary, catches mistakes before they reach your warehouse, and is stricter about your YAML. Here is how to move.

dbtAnalytics engineeringWhat's new
All guides and cheat sheets

dbt v2 reached general availability on 14 September 2026. It is the biggest change to dbt since it was created: the engine behind it, first announced as "Fusion" in 2025, is now simply dbt. If you write SQL models for a living, here is what is different, what will break, and how to upgrade calmly.

One engine, two distributions

dbt v2 is built on a single engine written in Rust. It ships in two forms:

  • dbt-oss, the open-source distribution under the Apache 2.0 licence.
  • dbt, the full distribution from dbt Labs, which adds proprietary features on top.

Because adapters now connect through ADBC drivers, dbt v2 is a single compiled program. There is no longer a tree of Python packages to install and keep compatible, which removes a whole category of "it works on my laptop but not in CI" problems.

What you get

Much faster parsing and compiling

dbt Labs reports that parsing a 10,000-model project is up to 10 times faster than in v1. On large projects, the wait before anything runs drops from minutes to seconds, which changes how it feels to work in dbt every day.

Mistakes caught before the warehouse sees them

v2 understands your SQL, not just your Jinja. By default it parses every model when compiling, without needing a warehouse connection, and reports problems as warnings. In strict mode it fully resolves column types and references before running anything, so a misspelled column or a type mismatch fails in seconds on your laptop rather than twenty minutes into a production run. Strict mode needs you to be signed in with dbt login.

Terminal
dbt build --static-analysis strict

Strict mode also produces column-level lineage, so you can see exactly which downstream models and dashboards use a column before you rename it.

Built-in extras

  • dbt lint: SQL linting compatible with SQLFluff, with --fix to tidy files automatically.
  • Batched tests with --batch-tests. dbt Labs' internal testing reported about 40% lower test runtime and 65% fewer queries.
  • dbt Docs v2 with dbt docs generate and dbt docs serve, and a built-in language server for editor support.
  • DuckDB built in: no separate adapter to install, which makes dbt v2 a great way to learn and prototype on your laptop. More in DuckDB 2.0: what's coming.

Adapters for BigQuery, Databricks, DuckDB, Redshift and Snowflake are generally available; ClickHouse and Spark are in beta.

What breaks: dbt v2 is stricter

dbt v1 silently ignored a lot of mistakes. v2 turns them into errors. In practice, most upgrade work is cleaning up things that were already wrong.

  • Misspelled configs and unknown YAML keys now fail instead of being ignored. That includes unused paths in dbt_project.yml and duplicate config keys.
  • Missing macros, tests and variables fail at dbt parse, much earlier than before.
  • --models and -m are gone. Use --select or -s.
  • Standalone YAML anchors must live under a new top-level anchors: key.
  • Reading meta from config.get() no longer works; use config.meta_get() instead.
  • Behaviour-change flags scheduled for 2.0 are always on and can no longer be switched off.
YAML
# dbt v2: standalone anchors go under "anchors:"
anchors:
  - &id_column
      name: id
      data_type: int

models:
  - name: dim_customer
    columns:
      - *id_column

How to upgrade, step by step

  • 1. Get to the latest v1 and fix every deprecation warning. Warnings in v1 are the errors of v2.
  • 2. Test the new parser while still on v1.12: dbt parse --use-v2-parser shows what v2 would reject, without changing anything.
  • 3. Let the tools do the boring fixes. The dbt-autofix package fixes many common issues automatically, so you only review what is left.
  • 4. Install v2 and run it side by side. v2 writes a manifest that v1 can read, so state:modified and --defer keep working while part of the team is still on v1.
  • 5. Switch CI first, then production, once a full dbt build passes on a copy of your data.
Terminal
# Install dbt v2
python -m pip install dbt
dbt --version

dbt v1 remains supported, so there is no need to rush a large project. Start with a smaller project, or a new one, to learn what changes.

What it means for analytics engineers

The day-to-day work does not change: you still write SQL models, tests and documentation. What changes is the feedback loop. Faster parsing, errors caught before running, and column lineage on your laptop make dbt feel much more like a modern programming tool. The stricter checks are also a good moment to clean up projects that have grown messy over the years.

New to dbt? Start with Your first dbt project, step by step. For where dbt fits in the bigger picture, see The data stack in 2026.

Sources: the dbt documentation "Upgrading to dbt v2", dbt Labs' release coverage from September 2026 and the DuckDB blog. Details may change in minor releases, so check the official docs before upgrading production projects.

Alessandro Ecclesie AgazziWritten by Alessandro Ecclesie Agazzi, analytics engineer in London. Updated 13 October 2026. About me