Upgrading to 0.21.0


Breaking changes

  • dbt source snapshot-freshness has been renamed to dbt source freshness. Its node selection logic is now consistent with other tasks. In order to check freshness for a specific source, you must prefix it with source:.
  • Snowflake: Turn off transactions and turn on autocommit by default. Explicitly specify begin and commit for DML statements in incremental and snapshot materializations. Note that this may affect user-space code that depends on transactions.
  • Artifacts:
    • manifest.json uses a v3 schema that includes additional node properties (no changes to existing properties)
    • run_results.json uses a v3 schema that has added skipped as a potential TestResult
    • sources.json has a new v2 schema that has added timing and thread details

New and changed documentation



  • Commands: source: Updated selection logic to match other tasks. When selecting a specific source to check freshness, you must prefix it with source:.
  • Node selection syntax, commands: Switch --models for --select across the board. (Commands which previously used the --models flag still support it for backwards compatibility.)
  • YAML selectors now support an optional default property. If set, dbt will use custom selection criteria for commands that do not specify their own selection/exclusion flags.
  • Selection methods and state comparison caveats: Add state:modified subselectors, and reflect that it now includes changes to upstream macros.
  • Test selection examples includes more discussion of indirect selection (a change in v0.20), and the optional "greedy" flag/property (new in v0.21), which you can optionally set to include tests that have a mix of selected + unselected parents

Elsewhere in Core


  • Postgres profile property connect_timeout now configurable. Also applicable to child plugins (e.g. dbt-redshift)
  • Redshift: profile property ra3: true to support cross-database source definitions and read-only querying
  • BigQuery: profile property execution_project now configurable. Snapshots support target_project and target_dataset config aliases.