Migrate from dbt/SQL

deet is a compiler and typechecker for your warehouse workflows. The migration path is designed to be incremental: start with one model, keep your orchestrator, and gradually add contracts.

Fast path: paste a model into the playground

  1. Open /playground
  2. Click Migrate dbt SQL
  3. Paste a single dbt model query
  4. Compile, then copy export commands / share a contract link

Project path: migrate a dbt project

deet migrate --project ./path/to/dbt --output migrated-deet
cd migrated-deet
deet check
deet compile --target duckdb

What imports cleanly

  • Straightforward SQL models (select/join/filter/group/order)
  • Models where table schemas are known (or easy to define)

What tends to break

  • Jinja-heavy models and macros
  • Dynamic ref() patterns
  • Database-specific SQL that relies on dialect quirks

What deet adds

  • Typed sources: explicit schemas for your tables
  • Typed model contracts: stable interfaces for downstream consumers
  • Compile-time errors: catch join/key drift, nullability issues, and type mismatches before runtime
  • Portable SQL: compile once for multiple backends

Recommended workflow

  1. Convert one high-leverage model (the one that breaks most often)
  2. Add source schemas (manually or via deet introspect)
  3. Wire deet check into CI so types gate merges
  4. Expand model coverage over time