Skip to main content

Seed configurations

Changelog

Available configurations#

Seed-specific configurations#

dbt_project.yml
seeds:  <resource-path>:    +quote_columns: true | false    +column_types: {column_name: datatype}

General configurations#

General configurations#

dbt_project.yml
seeds:  <resource-path>:    +enabled: true | false    +tags: <string> | [<string>]    +pre-hook: <sql-statement> | [<sql-statement>]    +post-hook: <sql-statement> | [<sql-statement>]    +database: <string>    +schema: <string>    +alias: <string>    +persist_docs: <dict>    +full_refresh: <boolean>    +meta: {<dictionary>}

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:

dbt_project.yml

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:

dbt_project.yml

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).

seeds/marketing/properties.yml
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 data/marketing/utm_parameters.csv, this would look like:

dbt_project.yml
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 data/country_codes.csv, and
  • A seed file at data/marketing/utm_parameters.csv
dbt_project.yml
name: jaffle_shop...seeds:  jaffle_shop:    +enabled: true    +schema: seed_data    # This configures data/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