upgrading-dbt-core

Migrates dbt-core projects from versions 1.3-1.7 to dbt-core 1.12.

699|61|Updated Jan 8, 2026
One-click install
npx skills add https://github.com/dbt-labs/dbt-agent-skills --skill upgrading-dbt-core
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: upgrading-dbt-core
Source: https://github.com/dbt-labs/dbt-agent-skills/tree/main/skills/dbt-migration/skills/upgrading-dbt-core
Command: npx skills add https://github.com/dbt-labs/dbt-agent-skills --skill upgrading-dbt-core

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pyyaml, dbt-autofix, dbt-core, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Upgrading a dbt-core project across multiple minor versions involves dozens of breaking changes, behavior changes, and deprecations that are easy to miss and tedious to apply by hand. This Skill automates the full migration of a dbt-core v1 project (1.3 through 1.7) to dbt-core 1.12 using a data-driven issue corpus, so nothing is improvised or forgotten.

Core Features & Use Cases

  • Data-driven issue detection: Loads a precompiled knowledge bundle per starting version and adapter (Snowflake, Redshift, BigQuery, Databricks, Spark), then detects which breaking, behavior, and deprecated changes actually exist in the project.
  • Tiered fix automation: Deterministic issues are handled by dbt-autofix, agentic issues are fixed directly, post-1.8 behavior changes are preserved by pinning behavior-change flags in dbt_project.yml, and risky changes require explicit human approval.
  • Verified migration with reporting: Validates the result with dbt parse on dbt-core 1.12, re-runs detection to confirm fixes held, tracks job command changes in migration_jobs.json, and produces a migration_report.md.
  • Use Case: A team on dbt-core 1.5 with Snowflake asks to upgrade to the latest dbt. The Skill replays every version boundary, pins the behavior flags the project actually exhibits, and delivers a project that parses cleanly on 1.12 with a full change report.

Quick Start

Upgrade my dbt project, currently on dbt-core 1.5 with Snowflake, to the latest dbt-core version.

Frequently Asked Questions about upgrading-dbt-core

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I upgrade a dbt-core project to the latest version?

Provide the project's current dbt-core version (1.3-1.7) and adapter type, and the Skill loads the matching issue bundle, detects which changes apply, fixes them via dbt-autofix and direct edits, then validates with dbt parse on dbt-core 1.12.

Which dbt-core versions and adapters are supported for migration?

Starting versions 1.3, 1.4, 1.5, 1.6, and 1.7 are supported, with 1.12 as the target. Supported adapters are Snowflake, Redshift, BigQuery, Databricks, and Spark; projects already on 1.8 or later only need behavior-flag pinning.

Does the dbt migration run dbt build or test against my warehouse?

No. The only in-session correctness gate is dbt parse on dbt-core 1.12; the Skill never runs build, run, test, seed, or snapshot and never touches a warehouse. An optional, user-approved job verification gate exists only in the dbt platform Studio environment.

How are post-1.8 behavior changes handled during the upgrade?

Post-1.8 backwards-incompatible changes are gated behind behavior-change flags in dbt_project.yml. Instead of rewriting behavior, the Skill pins each applicable flag to false so the project keeps its current semantics while parsing on 1.12.

Can the migration be resumed if it is interrupted?

Yes. Issue and phase state are recorded in structured artifacts (target/dbt_migration_results.json locally or target/dbt_migration.json in Studio), and seeding is idempotent, so a rerun preserves prior statuses and continues where it stopped.

What happens to dbt platform job commands during the migration?

Job commands are recorded in migration_jobs.json at the project root with per-step verdicts (ok, needs_change, or manual) and replacement commands where applicable. The Skill never edits the jobs themselves; the customer applies the changes in dbt platform.