Schema Diff
See exactly how your warehouse schema changes with every dbt run. Catch unintended modifications, review schema impact in pull requests, and maintain a complete history of your data model evolution.
The Problem
Schema changes can silently break downstream systems. A renamed column, a changed data type, or an accidentally dropped field can cascade through dashboards, APIs, and reports without warning. By the time someone notices, the damage is done.
How Schema Diff Solves This
dbdeux automatically captures and compares your warehouse schema before and after every run:
Automatic Detection
Every time you execute a dbt run, dbdeux:
- Snapshots the current schema of all affected models before execution
- Executes your dbt run as normal
- Captures the new schema after execution
- Compares the two and highlights every difference
No configuration needed. No extra steps. It just works.
Change Types
Schema Diff categorizes changes for quick visual scanning:
| Change Type | Indicator | Example |
|---|---|---|
| Column added | 🟢 Green | New customer_lifetime_value column appears |
| Column removed | 🔴 Red | legacy_id column no longer exists |
| Type changed | 🟡 Yellow | revenue changed from INTEGER to DECIMAL(18,2) |
| Column reordered | 🔵 Blue | Column position shifted (useful for SELECT * consumers) |
Use Cases
Pull Request Review
When a teammate opens a pull request that modifies a model, reviewers can instantly see the schema impact without running anything themselves:
- "This PR adds 3 columns to
dim_customers" - "This PR changes
order_totalfrom INT to FLOAT" - "This PR removes the deprecated
legacy_statuscolumn"
This makes code review faster and more confident.
Drift Detection
Catch unintended schema changes before they reach production:
- A Jinja macro change that accidentally adds extra columns
- A package upgrade that alters output schemas
- An upstream source schema change that propagates unexpectedly
Compliance and Audit
Maintain a complete, timestamped record of every schema change:
- Who made the change (tied to the user who triggered the run)
- When it happened (exact timestamp)
- What changed (full before/after comparison)
- Why it changed (linked to the dbt run and Git commit)
Proactive Alerts
Combine Schema Diff with Notifications to get alerted immediately when unexpected schema changes occur in production runs.
Schema History
Access the full history of schema changes for any model:
- Timeline view: See all changes chronologically
- Compare any two points: Select any two runs and see the diff between them
- Export: Download schema history for external documentation or compliance reporting