Skip to main content


Every dbt project needs a dbt_project.yml file — this is how dbt knows a directory is a dbt project. It also contains important information that tells dbt how to operate your project.

  • dbt uses YAML in a few different places. If you're new to YAML, it would be worth learning how arrays, dictionaries, and strings are represented.
  • Note, you can't set up a "property" in the dbt_project.yml file if it's not a config (an example is macros). This applies to all types of resources. Refer to Configs and properties for more detail.


The following example is a list of all available configurations in the dbt_project.yml file:

Naming convention

It's important to follow the correct YAML naming conventions for the configs in your dbt_project.yml file to ensure dbt can process them properly. This is especially true for resource types with more than one word.

  • Use dashes (-) when configuring resource types with multiple words in your dbt_project.yml file. Here's an example for saved queries:

    saved-queries:  # Use dashes for resource types in the dbt_project.yml file.
    enabled: true
  • Use underscore (_) when configuring resource types with multiple words for YAML files other than the dbt_project.yml file. For example, here's the same saved queries resource in the semantic_models.yml file:

    saved_queries:  # Use underscores everywhere outside the dbt_project.yml file.
    - name: saved_query_name
    ... # Rest of the saved queries configuration.
    enabled: true