Putting it together

$ dbt run --models my_package.*+ # select all models in my_package and their children
$ dbt run --models +some_model+ # select some_model and all parents and children
$ dbt run --models tag:nightly+ # select "nightly" models and all children
$ dbt run --models +tag:nightly+ # select "nightly" models and all parents and children
$ dbt run --models @source:snowplow # build all models that select from snowplow sources, plus their parents
$ dbt test --models config.incremental_strategy:insert_overwrite,test_name:unique # execute all `unique` tests that select from models using the `insert_overwrite` incremental strategy

This can get complex! Let's say I want a nightly run of models that build off snowplow data and feed exports, while excluding the biggest incremental models (and one other model, to boot).

$ dbt run --models @source:snowplow,tag:nightly models/export --exclude package:snowplow,config.materialized:incremental export_performance_timing

This command selects all models that:

  • Select from snowplow sources, plus their parents, and are tagged "nightly"
  • Are defined in the export model subfolder

Except for models that are:

  • Defined in the snowplow package and materialized incrementally
  • Named export_performance_timing