upgrading-dbt

Migrates dbt v1 projects from versions 1.3-1.7 to dbt 1.12 with verified fixes.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pyyaml, and includes scripts (resource) and references (resource) components.

What problem does it solve? Upgrading a dbt project across multiple minor versions involves dozens of breaking changes, behavior changes, and deprecations that are easy to miss and risky to apply by hand. This Skill automates the full migration of a dbt v1 project (on 1.3 through 1.7) to dbt 1.12 using a data-driven issue corpus, so nothing is fabricated from memory and every change is verified. ## Core Features & Use Cases - Data-driven issue detection: Loads a precompiled knowledge bundle per starting version and adapter (Snowflake, Redshift, BigQuery, Databricks, Spark), then runs a detection sweep to find which breaking and behavior changes actually affect the project. - Tiered fix automation: Applies deterministic fixes via the dbt-migrate-1x tool, agentic fixes directly, pins post-1.8 behavior-change flags to preserve current semantics, and requires explicit user approval for human-in-the-loop changes. - Verification and reporting: Validates the migrated project with dbt parse on 1.12 (plus compile, test, and build on the dbt platform), re-runs detection to confirm fixes held, and produces a migration_report.md plus a migration_jobs.json listing job commands needing manual updates. - Use Case: A team on dbt 1.5 with Snowflake asks to upgrade to the latest dbt. The Skill detects applicable issues, replays breaking changes up to 1.8, pins behavior flags for post-1.8 changes, verifies the project parses on 1.12, and delivers a report of everything changed and anything requiring manual follow-up. ## Quick Start Ask the agent to upgrade your dbt project to the latest version, for example: upgrade this dbt 1.5 project on Snowflake to the latest dbt version.

Frequently Asked Questions about upgrading-dbt

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

FAQPage Schema
How do I upgrade a dbt project from 1.5 to the latest version?▼

Provide the starting version and adapter type, and the Skill loads the matching issue bundle, detects which breaking changes apply, fixes them, pins post-1.8 behavior flags, and verifies the project parses on dbt 1.12. It supports starting versions 1.3 through 1.7.

What dbt versions and adapters does this migration support?▼

It upgrades projects on dbt 1.3, 1.4, 1.5, 1.6, or 1.7 all the way to dbt 1.12. Supported adapters are Snowflake, Redshift, BigQuery, Databricks, and Spark, with a core bundle when no adapter applies.

Does the dbt upgrade change my project's current behavior?▼

No. For post-1.8 backwards-incompatible changes, the Skill pins the gating behavior flag to false in dbt_project.yml so the project keeps its current semantics while parsing on 1.12. Flags are pinned only for behaviors the project actually exhibits.

Can this run in dbt platform Studio without a shell?▼

Yes. A dedicated platform execution profile uses Studio tools like edit_file and dbt_command instead of shell scripts. Deterministic fixes are applied by hand there since dbt-migrate-1x is unavailable, and verification extends to dbt compile, test, and build.

What happens to dbt job commands during a migration?▼

Job commands and other invocation sites are never edited automatically. They are recorded in migration_jobs.json with verdicts and suggested replacements, since the correct fix depends on deployment details outside the repository.

Why does the migration verify with dbt parse only at the end?▼

A project several minors behind fails parsing for many independent reasons at once, so per-issue parsing cannot isolate whether a fix worked. The Skill fixes the whole detected set first, then runs the parse gate once, followed by re-detection to confirm fixes held.