> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paradime.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Prepare for dbt™ v2

> Get your dbt™ project v2-ready: resolve every deprecation, update CLI flags, and understand the behavior changes the new engine enforces.

dbt™ v2 is the next major version of dbt™, delivered through the dbt Fusion engine (in beta at the time of writing). It is faster and stricter: your project language and DAG semantics carry over, but v2 removes deprecated functionality and validates inputs rigorously, so a 1.x project needs preparation before it parses on v2. This guide covers that preparation, which you can do today from dbt™ 1.12 in Paradime. It is based on the official [dbt™ upgrade guide for v2](https://docs.getdbt.com/docs/dbt-versions/core-upgrade/upgrading-to-v2).

<Note>
  **Prerequisites**

  * Your project on dbt™ 1.12, upgraded via the [1.12 guide](/guides/migrations/dbt-version-upgrades/upgrade-to-dbt-1.12). Its opt-in `--use-v2-parser` flag is the low-risk way to test v2 compatibility.
  * An [Admin role](/products/settings/users/role-based-access-control) in Paradime if you'll be changing workspace or environment versions while testing.

  Estimated time: varies with project size; the [DinoAI upgrade agent](/guides/migrations/dbt-version-upgrades/upgrade-with-the-dinoai-agent) or [`dbt-autofix`](https://github.com/dbt-labs/dbt-autofix) automates most of it.
</Note>

<Info>
  The dbt™ versions available to your Paradime workspace are listed in **Settings > Workspace > General** under **Change version**. Prepare your project against 1.12 with the v2 parser now, and switch when a v2-based version is available for your workspace.
</Info>

## A clean slate

v2 does not support deprecated functionality:

* **All [deprecation warnings](https://docs.getdbt.com/reference/deprecations) must be resolved before upgrading**, including historic deprecations and the [ones introduced in dbt™ 1.10](/guides/migrations/dbt-version-upgrades/upgrade-to-dbt-1.10#deprecation-warnings): custom properties outside `meta`, duplicate YAML keys, orphaned Jinja blocks, and properties that moved to configs.
* **Some behavior change flags are removed** (generally in their enabled state). You can no longer opt out of them with `flags:` in `dbt_project.yml`.

Much of this is auto-fixable with the [`dbt-autofix` helper](https://github.com/dbt-labs/dbt-autofix) or the dbt Labs [migration agent skill](https://github.com/dbt-labs/dbt-agent-skills/tree/main/skills/dbt-migration/skills/migrating-dbt-core-to-fusion).

## Ecosystem packages

The most popular dbt-labs packages (`dbt_utils`, `audit_helper`, `dbt_external_tables`, `dbt_project_evaluator`) are already v2-compatible. External packages may use outdated code that fails to parse on v2. To check a package, look for the Fusion-compatible badge on the [dbt™ package hub](https://hub.getdbt.com/) or review its `require-dbt-version`: a range that equals or contains `2.0.0` (for example `">=1.10.0,<3.0.0"`) is compatible. Test packages that aren't clearly compatible before deploying.

## Changed functionality in v2

These are the specific behavior changes to expect when your project moves to v2.

### Errors move from compile time to parse time

In v1, `dbt parse` passes and only `dbt compile` fails on a nonexistent macro or adapter method (`{{ my_nonexistent_macro('amount') }}`, `{{ adapter.does_not_exist() }}`), an undefined generic test in YAML, or a missing variable (`{{ var('does_not_exist') }}`). In v2, all of these fail at `dbt parse`.

### CLI flags that need changes

* `--models` / `--model` / `-m`: use `--select` / `-s` instead (renamed back in dbt™ 0.21). v2 raises an error if you use the old flags. Update Bolt schedule commands that still use them.
* `--resource-type` / `--exclude-resource-type`: use `--resource-types` / `--exclude-resource-types`.
* `--partial-parse` / `--no-partial-parse`: no longer supported; remove them from commands (v2 logs deprecation warning `dbt1700` if passed).

A longer list of historic v1 flags (such as `--print`, `--printer-width`, `--cache-selected-only`, `--static-parser`) becomes inert in v2: passing them doesn't error, the flag just does nothing and warns. See the [deprecated flags table](https://docs.getdbt.com/docs/dbt-versions/core-upgrade/upgrading-to-v2#deprecated-flags).

### Stricter validation

* **Duplicate docs blocks** with the same name (for example, identical block names across two packages) now error instead of silently picking one. Rename the duplicates.
* **Package version conflicts**: if a local package depends on a hub package the root project also requires at a different version, `dbt deps` errors (`Cannot combine non-exact versions`) instead of installing whatever the root requests.
* **Standalone YAML anchors** at the top level of a properties file error; move them under the `anchors:` key as described in the [1.10 guide](/guides/migrations/dbt-version-upgrades/upgrade-to-dbt-1.10#the-anchors-key-for-standalone-yaml-anchors).
* **Algebraic operations around `return()` in macros** (for example `return('xyz') + 'abc'`) are no longer supported; the surrounding expression is ignored with a `JinjaTopLevelReturn` warning. Compute the value inside `return()`.

### Runtime behavior changes

* **`dbt build` runs all unit tests first**, then builds the rest of the DAG, thanks to built-in column name and type awareness. In v1, unit tests ran in lineage order and needed the model's direct parents to exist in the warehouse.
* **`dbt compile` keeps going after an error**: v2 skips nodes downstream of a failed compile but continues compiling the rest of the DAG in parallel, where v1 stopped at the first error.
* **Threads are managed automatically** on Snowflake and Databricks (the `threads` setting acts as a maximum cap if set); on BigQuery and Redshift, v2 respects user-set threads, and `--threads 0` or omitting the setting enables dynamic optimization. v1 defaulted to `--threads 1`.
* **`dbt clean` is contained**: it no longer deletes files in configured resource paths or outside the project directory.
* **Seeds with trailing commas** no longer produce a spurious extra empty column.
* **Parse-time printing of `get_relation()`** outputs the fully qualified relation name instead of `None`, because v2 resolves relation names at parse time to batch `get_relation()` calls and speed up `dbt compile`.
* **Custom configs require `meta` accessors**: `config.get()` and `config.require()` no longer return values that exist only under `meta`; `config.get()` returns the default with a warning and `config.require()` errors. Use `config.meta_get('my_key')` and `config.meta_require('my_key')` instead.

### New functionality

* **`dbt login`** enables browser-based authentication against the dbt platform and unlocks features such as the advanced dbt VS Code extension capabilities; `dbt login status` shows your authentication state.
* **dbt Docs v2**: `dbt docs generate` compiles the project, produces Parquet artifacts, and exports a static site in one command; the browser queries the artifacts directly with DuckDB-WASM, so the output can be hosted on any static file host.
* **Snowflake ML model functions** are supported with simplified type checking: any arguments are accepted, and results are treated as `VARIANT`, so cast them to the expected type (for example `my_model!predict(input_column)::float`).

## Distributions

v2 is available in two distributions: the `dbt` package (the dbt Fusion engine, the recommended v2 experience) and `dbt-core` 2.0 (the Apache 2.0 open-source runtime) for organizations with a strict open-source requirement. Projects not ready for v2 can continue on dbt Core™ 1.x. See [dbt™ licensing](https://docs.getdbt.com/docs/dbt-licensing).

## Readiness steps

<Steps>
  <Step title="Resolve every deprecation warning">
    On dbt™ 1.12 in the Code IDE, run `dbt parse` and clear all deprecation warnings, including the 1.10 and 1.11 waves. Use [`dbt-autofix`](https://github.com/dbt-labs/dbt-autofix) or the [DinoAI upgrade agent](/guides/migrations/dbt-version-upgrades/upgrade-with-the-dinoai-agent) to automate the mechanical fixes.
  </Step>

  <Step title="Parse with the v2 parser">
    Run `dbt parse --use-v2-parser` and fix anything it reports. A clean v2 parse on 1.12 is the strongest signal your project is v2-ready.
  </Step>

  <Step title="Update commands and scripts">
    Sweep Bolt schedule commands, [schedules as code](/guides/orchestrate-data-pipelines/manage-schedules-as-code), and CI configuration for `-m` / `--models`, `--resource-type`, and partial-parse flags, and replace them with the v2-compatible forms.
  </Step>

  <Step title="Check package compatibility">
    Confirm each package's `require-dbt-version` covers 2.0.0 or carries the Fusion-compatible badge on the package hub, and plan upgrades for the rest.
  </Step>
</Steps>

<Check>
  `dbt parse --use-v2-parser` completes with no errors or deprecation warnings, and no Bolt schedule uses a removed CLI flag. The most common leftovers are custom properties still outside `config.meta` and `-m` flags in old schedule commands.
</Check>

## Next steps

<CardGroup cols={2}>
  <Card title="Upgrade with the DinoAI agent" href="/guides/migrations/dbt-version-upgrades/upgrade-with-the-dinoai-agent" icon="bot">
    Automate the whole readiness checklist as one reviewed PR.
  </Card>

  <Card title="Manage dbt™ version" href="/products/settings/configuration/manage-dbt-version" icon="settings">
    The workspace setting where new versions appear.
  </Card>

  <Card title="Official v2 upgrade guide" href="https://docs.getdbt.com/docs/dbt-versions/core-upgrade/upgrading-to-v2" icon="external-link">
    The upstream dbt™ documentation this guide is based on, including the full deprecated-flags table.
  </Card>

  <Card title="dbt™ changes overview" href="https://docs.getdbt.com/reference/changes-overview" icon="list">
    dbt Labs' comparison of deprecations, behavior flags, and removed CLI flags.
  </Card>
</CardGroup>


## Related topics

- [dbt™ version upgrades](/guides/migrations/dbt-version-upgrades/index.md)
- [Upgrade to dbt™ 1.12](/guides/migrations/dbt-version-upgrades/upgrade-to-dbt-1.12.md)
- [Upgrade dbt Core™ version](/guides/upgrade-dbt-core-version.md)
- [Upgrade with the DinoAI agent](/guides/migrations/dbt-version-upgrades/upgrade-with-the-dinoai-agent.md)
- [Migrations](/guides/migrations/index.md)
