sqb dbt commands use --select and --exclude to scope what runs. Selectors work across both dbt and SQLBuild, with the system determining which side owns each selector and how to route work.
SQLBuild-recognized selectors
These selectors match SQLBuild models directly:| Selector | Example | Behavior |
|---|---|---|
| Model name | fact_orders | Selects that SQLBuild model. Auto-includes its immediate dbt upstream dependencies. |
Leading + | +fact_orders | Selects the model plus walks upstream through both SQLBuild and dbt models. |
Trailing + | fact_orders+ | Selects the model plus all downstream SQLBuild models. |
Both + | +fact_orders+ | Full upstream (including dbt) and downstream expansion. |
| Tag | tag:nightly | Selects all SQLBuild models with that tag. Auto-includes dbt dependencies. |
Tag with + | +tag:nightly | Tag match plus upstream expansion through the combined graph. |
| Path | path:marts | Selects SQLBuild models under that directory. dbt-style path:models/marts is translated automatically. |
Path with + | +path:marts | Path match plus upstream/downstream expansion. |
dbt-only selectors
Selectors that SQLBuild does not recognize (likestate:modified, package:stripe, source:stripe.charges) are passed to dbt ls to resolve:
| Selector | Example | Behavior |
|---|---|---|
Without + | state:modified | dbt-only work. No SQLBuild models selected. |
With trailing + | state:modified+ | SQLBuild runs dbt ls to find which dbt models match, then walks downstream into SQLBuild territory. |
With both + | +state:modified+ | Same downstream expansion, plus upstream dbt expansion. |
state:modified+ to trigger rebuilds of SQLBuild models that depend on changed dbt models. If dbt ls returns no matching models, no SQLBuild work is triggered.
Exclude
--exclude removes matching SQLBuild models from the final selection:
Examples
Execution order
Forsqb dbt run and sqb dbt build:
- Reuse pre-phase (if reuse from production is configured) - already-built relations are pulled from the production branch before dbt runs
- dbt runs - a single
dbt run/buildcommand executes with the user’s selectors merged with any additional dbt models required by selected SQLBuild models, pruned to only the models that actually changed - SQLBuild runs - selected SQLBuild models execute against the now-built dbt tables
sqb dbt test:
- dbt test runs first - with the user’s original selectors
- SQLBuild test runs - unit tests for selected SQLBuild models
- SQLBuild audit runs - audits for selected SQLBuild models
test_type:data and test_type:unit selectors from dbt are mapped to SQLBuild equivalents: test_type:data runs SQLBuild audits, test_type:unit runs SQLBuild unit tests.
