Prerequisites
- An Admin role in Paradime, needed to change the workspace dbt™ version.
- Your project on dbt™ 1.10 with deprecation warnings largely cleaned up via the 1.10 guide.
What can break
Upgrading remains backward compatible within 1.x, with behavior changes gated behind flags. The visible change is noise: on the Snowflake, Databricks, BigQuery, and Redshift adapters, deprecation warnings from JSON-schema validation of your YAML files are now on by default. If your Bolt schedules promote warnings to errors, review the section below before switching. Also check for scripts and environment variables using engine configuration variables: theDBT_ENGINE_ prefix now applies, for example DBT_STATE becomes DBT_ENGINE_STATE and DBT_PROJECT_DIR becomes DBT_ENGINE_PROJECT_DIR. See About flags (global configs) for the full mapping.
What’s new in dbt™ 1.11
User-defined functions (UDFs)
UDFs let you define and register custom functions in your warehouse as first-class dbt™ resources. Like macros they promote code reuse, but because they are warehouse objects the same logic is reusable in tools outside dbt™:- Define UDFs in a
functions/directory with corresponding YAML configuration. - Create, update, and rename them as part of DAG execution with
dbt build --select "resource_type:function". - During
dbt build, UDFs are built before the models that reference them. - Reference a UDF in models with the
{{ function('function_name') }}Jinja macro. - With
--deferand--state,function()calls resolve to the UDF in the state manifest, so dependent models can run without rebuilding the UDF.
Deprecation warnings enabled by default
For projects on the Snowflake, Databricks, BigQuery, and Redshift adapters, JSON-schema validation of YAML configuration files (such asschema.yml and dbt_project.yml) now raises deprecation warnings by default, surfacing misspelled config keys, deprecated properties, and incorrect data types. The warnings you’ll see by default:
CustomKeyInConfigDeprecationCustomKeyInObjectDeprecationCustomTopLevelKeyDeprecationMissingPlusPrefixDeprecationSourceOverrideDeprecation
warn_error_options in dbt_project.yml, or all deprecations at once:
dbt parse --warn-error-options '{"silence": ["Deprecations"]}'.
New behavior flags
Both introduced in 1.11 and disabled by default; opt in underflags: in dbt_project.yml:
Adapter-specific changes
- Snowflake: basic table materialization on Iceberg tables registered in a Glue catalog through a catalog-linked database;
cluster_byandimmutable_wheresupported on dynamic tables;copy_grants: truepreserves object-level privileges when a dynamic table is recreated on--full-refresh;refresh_warehousepicks a separate warehouse for a dynamic table’s automatic refreshes (withsnowflake_warehousestill used for DDL). - BigQuery: set
bigquery_use_batch_source_freshnesstotrueto calculate metadata-based source freshness in a single batch query instead of one query per source. - Redshift: the
datasharingprofile credential (beta) uses Redshift-nativeSHOWcommands instead of PostgreSQL catalog tables, enabling cross-database and cross-cluster access with Redshift Datasharing;drop_without_cascade: trueemitsDROPstatements withoutCASCADEto skip dependency-graph resolution overhead (errors if a dependent object exists). - Spark: new PyHive retry-handling profile configurations:
poll_interval,query_timeout(raisesDbtRuntimeErroron overrun), andquery_retries.
Quick hits
- The
--sqlparseflag setssqlparseMAX_GROUPING_DEPTHandMAX_GROUPING_TOKENSfor SQL parsing during compilation. dbt lscan write out nested keys, for exampledbt ls --output json --output-keys config.materialized.- Manifest metadata now includes
run_started_at. - Disabling a model automatically disables its unit tests.
config.meta_get()andconfig.meta_require()access custom configurations undermeta(also backported to 1.10).
Upgrade steps
1
Test on 1.11 in a non-production environment
Pin a Bolt environment to dbt™ 1.11 in Settings > Environments or use a staging workspace, then run
dbt parse in the Code IDE terminal and review the newly visible deprecation warnings.2
Fix or silence the new warnings
Fix genuine issues (misspelled keys, deprecated properties, missing
+ prefixes), and silence any warning types you’re deferring via warn_error_options so Bolt logs stay readable.3
Update environment variables and scripts
Rename engine configuration variables to the
DBT_ENGINE_ prefix where you use them, for example in environment variables or schedule commands.4
Switch the workspace version
In Settings > Workspace > General, select Change version, choose 1.11, and save. See Upgrade dbt Core™ version.
dbt --version reports 1.11.x, Bolt schedules run green, and parse output contains only warnings you’ve deliberately deferred. The most likely failure is a schedule with --warn-error promoting the newly-default deprecation warnings to errors.Next steps
Upgrade to dbt™ 1.12
The v2 parser preview and a large batch of behavior flags flipping on by default.
Upgrade with the DinoAI agent
Automate the warning cleanup with an agent-driven PR.
Manage dbt™ version
The workspace setting and per-environment overrides.
Official v1.11 upgrade guide
The upstream dbt™ documentation this guide is based on.