Upgrading to v1.10
Resources
- dbt Core v1.10 changelog (coming soon)
- dbt Core CLI Installation guide
- Cloud upgrade guide
What to know before upgrading
dbt Labs is committed to providing backward compatibility for all versions 1.x. Any behavior changes will be accompanied by a behavior change flag to provide a migration window for existing projects. If you encounter an error upon upgrading, please let us know by opening an issue.
Starting in 2024, dbt Cloud provides the functionality from new versions of dbt Core via release tracks with automatic upgrades. If you have selected the "Latest" release track in dbt Cloud, you already have access to all the features, fixes, and other functionality that is included in dbt Core v1.10! If you have selected the "Compatible" release track, you will have access in the next monthly "Compatible" release after the dbt Core v1.10 final release.
For users of dbt Core, since v1.8, we recommend explicitly installing both dbt-core
and dbt-<youradapter>
. This may become required for a future version of dbt. For example:
python3 -m pip install <Constant name="core" /> <Constant name="dbt" />-snowflake
New and changed features and functionality
New features and functionality available in dbt Core v1.10
The --sample
flag
Large data sets can slow down dbt build times, making it harder for developers to test new code efficiently. The --sample
flag, available for the run
and build
commands, helps reduce build times and warehouse costs by running dbt in sample mode. It generates filtered refs and sources using time-based sampling, allowing developers to validate outputs without building entire models.
Integrating dbt Core artifacts with dbt Cloud projects
With hybrid projects, dbt Core users working in the command line interface (CLI) can execute runs that seamlessly upload artifacts into dbt Cloud. This enhances hybrid dbt Core/dbt Cloud deployments by:
- Fostering collaboration between dbt Cloud + dbt Core users by enabling them to visualize and perform cross-project references to models defined in dbt Core projects. This feature unifies dbt Cloud + dbt Core workflows for a more connected dbt experience.
- Giving dbt Cloud and dbt Core users insights into their models and assets in Explorer. To view Explorer, you must have have a developer or read-only license.
- (Coming soon) Enabling users working in the Visual Editor to build off of models already created by a central data team in dbt Core rather than having to start from scratch.
Hybrid projects are available as a private beta to dbt Cloud Enterprise accounts. Contact your account representative to register your interest in the beta.
Managing changes to legacy behaviors
dbt Core v1.10 introduces new flags for managing changes to legacy behaviors. You may opt into recently introduced changes (disabled by default), or opt out of mature changes (enabled by default), by setting True
/ False
values, respectively, for flags
in dbt_project.yml
.
You can read more about each of these behavior changes in the following links:
- (Introduced, disabled by default)
validate_macro_args
. If the flag is set toTrue
, dbt will raise a warning if the argumenttype
names you've added in your macro YAMLs don't match the argument names in your macro or if the argument types aren't valid according to the supported types.
Quick hits
-
Provide the
loaded_at_query
property for source freshness to specify custom SQL to generate themaxLoadedAt
time stamp on the source (versus the built-in query, which uses theloaded_at_field
). You cannot defineloaded_at_query
if theloaded_at_field
config is also provided. -
Provide validation for macro arguments using the
validate_macro_args
flag, which is disabled by default. When enabled, this flag checks that documented macro argument names match those in the macro definition and validates their types against a supported format. Previously, dbt did not enforce standard argument types, treating the type field as documentation-only. If no arguments are documented, dbt infers them from the macro and includes them in the manifest.json file. Learn more about supported types.