Seed configurations
Available configurations
Seed-specific configurations
Resource-specific configurations are applicable to only one dbt resource type rather than multiple resource types. You can define these settings in the project file (dbt_project.yml), a property file (models/properties.yml for models, similarly for other resources), or within the resource’s file using the {{ config() }} macro.
The following resource-specific configurations are only available to Seeds:
- Project file
- Property file
seeds:
  <resource-path>:
    +quote_columns: true | false
    +column_types: {column_name: datatype}
    +delimiter: <string>
version: 2
seeds:
  - name: [<seed-name>]
    config:
      quote_columns: true | false
      column_types: {column_name: datatype}
      delimiter: <string>
General configurations
General configurations provide broader operational settings applicable across multiple resource types. Like resource-specific configurations, these can also be set in the project file, property files, or within resource-specific files.
- Project file
- Property file
Configuring seeds
Seeds can only be configured from YAML files, either in dbt_project.yml or within an individual seed's YAML properties. It is not possible to configure a seed from within its CSV file.
Seed configurations, like model configurations, are applied hierarchically — configurations applied to a marketing subdirectory will take precedence over configurations applied to the entire jaffle_shop project, and configurations defined in a specific seed's properties will override configurations defined in dbt_project.yml.
Examples
Apply the schema configuration to all seeds
To apply a configuration to all seeds, including those in any installed packages, nest the configuration directly under the seeds key:
seeds:
  +schema: seed_data
Apply the schema configuration to all seeds in your project
To apply a configuration to all seeds in your project only (i.e. excluding any seeds in installed packages), provide your project name as part of the resource path.
For a project named jaffle_shop:
seeds:
  jaffle_shop:
    +schema: seed_data
Similarly, you can use the name of an installed package to configure seeds in that package.
Apply the schema configuration to one seed only
To apply a configuration to one seed only, provide the full resource path (including the project name, and subdirectories).
version: 2
seeds:
  - name: utm_parameters
    config:
      schema: seed_data
In older versions of dbt, you must define configurations in dbt_project.yml and include the full resource path (including the project name, and subdirectories). For a project named jaffle_shop, with a seed file at seeds/marketing/utm_parameters.csv, this would look like:
seeds:
  jaffle_shop:
    marketing:
      utm_parameters:
        +schema: seed_data
Example seed configuration
The following is a valid seed configuration for a project with:
- name: jaffle_shop
- A seed file at seeds/country_codes.csv, and
- A seed file at seeds/marketing/utm_parameters.csv
name: jaffle_shop
...
seeds:
  jaffle_shop:
    +enabled: true
    +schema: seed_data
    # This configures seeds/country_codes.csv
    country_codes:
      # Override column types
      +column_types:
        country_code: varchar(2)
        country_name: varchar(32)
    marketing:
      +schema: marketing # this will take precedence