Skip to main content

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.

dim_customersschema diff
1 added1 removed1 modified
ColumnTypeStatus

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:

  1. Snapshots the current schema of all affected models before execution
  2. Executes your dbt run as normal
  3. Captures the new schema after execution
  4. 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 TypeIndicatorExample
Column added🟢 GreenNew customer_lifetime_value column appears
Column removed🔴 Redlegacy_id column no longer exists
Type changed🟡 Yellowrevenue changed from INTEGER to DECIMAL(18,2)
Column reordered🔵 BlueColumn 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_total from INT to FLOAT"
  • "This PR removes the deprecated legacy_status column"

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