resource-path

The <resource-path> nomenclature is used in this documentation when documenting how to configure a model, seed, or snapshot, from your dbt_project.yml file. It represents the nested dictionary keys that provide the path to either a directory of models, or a single model.

Example

info

This example is for models, but the same concepts apply for seeds and snapshots.

To apply a configuration to all models, do not use a <resource-path>:

dbt_project.yml
models:
+enabled: false # this will disable all models (not a thing you probably want to do)

To apply a configuration to all models in your project only, use your project name as the <resource-path>:

dbt_project.yml
name: jaffle_shop
models:
jaffle_shop:
+enabled: false # this will apply to all models in your project, but not any installed packages

To apply a configuration to all models in a subdirectory of your project, e.g. staging, nest the directory under the project name:

dbt_project.yml
name: jaffle_shop
models:
jaffle_shop:
staging:
+enabled: false # this will apply to all models in the `staging/` directory of your project

In the following project, this would apply to models in the staging/ directory, but not the marts/ directory:

.
├── dbt_project.yml
└── models
   ├── marts
   └── staging

To apply a configuration to one model, nest the full path under the project name. For a model at /staging/stripe/payments.sql, this would look like:

dbt_project.yml
name: jaffle_shop
models:
jaffle_shop:
staging:
stripe:
payments:
+enabled: false # this will apply to only one model

In the following project, this would only apply to the payments model:

.
├── dbt_project.yml
└── models
   ├── marts
   │   └── core
   │   ├── dim_customers.sql
   │   └── fct_orders.sql
   └── staging
   ├── jaffle_shop
   │   ├── customers.sql
   │   └── orders.sql
   └── stripe
   └── payments.sql