dbt Core v0.9.0stable Released Oct 26, 2017
โš ๏ธ Breaking Change Impact Score: 7/10

dbt Core: dbt 0.9.0

Source available โ€” automated, not human-reviewed

Component: dbt-core ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • Breaking Changes - `adapter` functions must be namespaced to the `adapter` context variable. To fix this error, use `adapter.already_exists` instead of just `already_exists`, or similar for other [adapter functions](https://docs.getdbt.com/reference#adapter).
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

dbt Core v0.9.0. Source highlight: This release focuses on improvements to macros, materializations, and package management. Check out the blog post to learn more about what's possible in this new version of dbt.

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (1)

  • Breaking Changes - `adapter` functions must be namespaced to the `adapter` context variable. To fix this error, use `adapter.already_exists` instead of just `already_exists`, or similar for other [adapter functions](https://docs.getdbt.com/reference#adapter).

โšก Performance & Enhancements (1)

  • BigQuery improvements

๐Ÿ”ง Bug Fixes & Patches (3)

  • `adapter` functions must be namespaced to the `adapter` context variable. To fix this error, use `adapter.already_exists` instead of just `already_exists`, or similar for other adapter functions.
  • Handle lingering `__dbt_tmp` relations (#511)
  • Run tests defined in an ephemeral directory (#509)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
### dbt 0.9.0 This release focuses on improvements to macros, materializations, and package management. Check out [the blog post](https://blog.fishtownanalytics.com/whats-new-in-dbt-0-9-0-dd36f3572ac6) to learn more about what's possible in this new version of dbt. ### Installation Full installation instructions for macOS, Windows, and Linux can be found [here](https://docs.getdbt.com/v0.9/docs/installation). If you use Windows or Linux, installation works the same as with previous versions of dbt. If you use macOS and Homebrew to install dbt, note that installation instructions have changed: #### macOS Installation Instructions ```bash brew update brew tap fishtown-analytics/dbt brew install dbt ``` ### Overview - More powerful macros and materializations - Custom model schemas - BigQuery improvements - Bugfixes - Documentation (0.9.0 docs can be found [here](https://docs.getdbt.com/v0.9/)) ### Breaking Changes - `adapter` functions must be namespaced to the `adapter` context variable. To fix this error, use `adapter.already_exists` instead of just `already_exists`, or similar for other [adapter functions](https://docs.getdbt.com/reference#adapter). ### Bugfixes - Handle lingering `__dbt_tmp` relations ([#511](https://github.com/fishtown-analytics/dbt/pull/511)) - Run tests defined in an ephemeral directory ([#509](https://github.com/fishtown-analytics/dbt/pull/509)) ### Changes - use `adapter`, `ref`, and `var` inside of macros ([#466](https://github.com/fishtown-analytics/dbt/pull/466/files)) - Build custom tests and materializations in dbt packages ([#466](https://github.com/fishtown-analytics/dbt/pull/466/files)) - Support pre- and post- hooks that run outside of a transaction ([#510](https://github.com/fishtown-analytics/dbt/pull/510)) - Support table materializations for BigQuery ([#507](https://github.com/fishtown-analytics/dbt/pull/507)) - Support querying external data sources in BigQuery ([#507](https://github.com/fishtown-analytics/dbt/pull/507)) - Override which schema models are materialized in ([#522](https://github.com/fishtown-analytics/dbt/pull/522)) ([docs](https://docs.getdbt.com/v0.9/docs/using-custom-schemas)) - Make `{{ ref(...) }}` return the same type of object as `{{ this }} `([#530](https://github.com/fishtown-analytics/dbt/pull/530)) - Replace schema test CTEs with subqueries to speed them up for Postgres ([#536](https://github.com/fishtown-analytics/dbt/pull/536)) ([@ronnyli](https://github.com/ronnyli)) - Bump Snowflake dependency, remove pyasn1 ([#570](https://github.com/fishtown-analytics/dbt/pull/570)) ### Documentation - Document how to [create a package](https://docs.getdbt.com/v0.9/docs/building-packages) - Document how to [make a materialization](https://docs.getdbt.com/v0.9/docs/creating-new-materializations) - Document how to [make custom schema tests](https://docs.getdbt.com/v0.9/docs/custom-schema-tests) - Document how to [use hooks to vacuum](https://docs.getdbt.com/v0.9/docs/using-hooks#section-using-hooks-to-vacuum) - Document [all context variables](https://docs.getdbt.com/v0.9/reference) ### New Contributors - [@ronnyli](https://github.com/ronnyli) ([#536](https://github.com/fishtown-analytics/dbt/pull/536)) #### And one more thing Questions? Comments? Suggestions? We want to hear them! If you haven't already, join our vibrant and bustling [slack team](https://slack.getdbt.com/) ๐Ÿ“ˆ