Static analysis tool that warns about risky DDL changes before dbt run. Like terraform plan for dbt.
pip install dbt-plan
dbt-plan run
dbt-plan ci-setup
name: dbt-plan on: pull_request: paths: ['models/**'] jobs: plan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: { fetch-depth: 0 } - run: pip install dbt-plan - run: | git checkout ${{ github.event.pull_request.base.sha }} dbt compile && dbt-plan snapshot - run: | git checkout ${{ github.event.pull_request.head.sha }} dbt compile dbt-plan check --format github >> $GITHUB_STEP_SUMMARY - run: dbt-plan check # exit 1 blocks merge
| Principle | Meaning |
|---|---|
| False safe = never | If we can't determine safety, we warn. Never silently pass. |
| False warning = OK | Over-warning is fine. Use ignore_models to suppress. |
| No runtime deps | Only sqlglot. No warehouse connection needed. |
| CI-first | Exit codes, structured output, one-line summary. |