dbt Projects on Snowflake: dbt project objects migrate to a single mutable live version (Pending)¶
Attention
This behavior change is in the 2026_06 bundle.
For the current status of the bundle, refer to Bundle history.
dbt project objects change from immutable, multi-version objects to objects that have a single, mutable live version. This affects how you reference and update project files, and it removes the version history features that were previously available for a dbt project object.
- Before the change:
A dbt project object maintained an immutable, numbered version for each deployment. Deploying a project or running ALTER DBT PROJECT with the
ADD VERSIONoption created a new version (VERSION$1,VERSION$2, and so on), and the files in each version couldn’t be changed after the version was created. You could:- Reference the files in any version through a versioned path, for example
snow://dbt/my_db.my_schema.my_project/versions/VERSION$1/dbt_project.yml. - List all versions of the object with SHOW VERSIONS IN DBT PROJECT.
- Set or unset the default version with
ALTER DBT PROJECT ... SET DEFAULT_VERSIONandALTER DBT PROJECT ... UNSET DEFAULT_VERSION. - Inspect the version state of an object with SHOW DBT PROJECTS
or
DESCRIBE DBT PROJECT <name>:default_versionshowed the configured default label (LAST,FIRST, or a specificVERSION$N);default_version_nameshowed the resolvedVERSION$N;default_version_aliasshowed that version’s alias; and the location URI used.../versions/version$N/.
However, because each version was immutable, a dbt project object couldn’t save the run state that dbt produced during an execution. Every EXECUTE DBT PROJECT run started from an immutable set of files that couldn’t be updated in place.
- Reference the files in any version through a versioned path, for example
- After the change:
When the 2026_06 behavior change bundle is enabled in your account, a dbt project object has a single, mutable version named
live. This introduces new capabilities and updates:- Partial parsing and state flags: The object can write the artifacts that dbt produces during a run (the compiled
target/directory, including files likemanifest.jsonandrun_results.json) back to its files, so you can reuse state across runs for partial parsing and flags like--stateand--select state:modified. dbt retry: You can re-run a project starting from the node that failed.- Slim CI deployments: You can compile and build only the models that changed, for example
with
dbt compile --select state:modified. source freshnesscommand: You can usedbt source freshnessto produce an up-to-date report on your source data.- Single live version file path: Project files are referenced through the
livepath instead of a versioned path. For example,snow://dbt/my_db.my_schema.my_project/versions/VERSION$1/dbt_project.ymlbecomessnow://dbt/my_db.my_schema.my_project/versions/live/dbt_project.yml. - Object mutability: The files in the
liveversion are directly editable. You can add, update, and remove them usingGET,PUT, and COPY FILES. - Object versions removed: Previously added versions are no longer accessible. They don’t appear in the output of
SHOW VERSIONS IN DBT PROJECT, and their versioned
snow://paths can no longer be used. DEFAULT_VERSIONattribute removed: You can no longer modify the default version.ALTER DBT PROJECT ... SET DEFAULT_VERSIONandALTER DBT PROJECT ... UNSET DEFAULT_VERSIONresult in an error.- SHOW and DESCRIBE output changes: SHOW DBT PROJECTS
and
DESCRIBE DBT PROJECT <name>reflect the new model:default_versionisLIVE;default_version_nameanddefault_version_aliasareNULL; and the location URI uses.../versions/live/regardless of any previously set default.
Because the
liveversion is mutable, dbt can read from and write back to a single working version across runs, which lets a dbt project object persist run state between executions.- Partial parsing and state flags: The object can write the artifacts that dbt produces during a run (the compiled
Migration to the live version¶
To check the current status of the 2026_06 bundle in your account, enable it, or disable it during the opt-out period, see Managing behavior change releases.
When the 2026_06 behavior change bundle is enabled in your account, dbt project objects that you create or replace are automatically live-version objects. Existing dbt project objects remain versioned and untouched until you explicitly migrate them.
To check whether an existing dbt project object has already been migrated, run
SHOW DBT PROJECTS or
DESCRIBE DBT PROJECT. If the default_version field shows
LIVE, the object is already using the new model. If it shows a version number (for example,
VERSION$1), the object still uses the previous versioned model and can be migrated.
To migrate existing objects, you must first opt in to the 2026_06 bundle or contact your Snowflake
account representative to request early opt-in for the dbt project object live version feature. Once either is in
place, you can migrate individual objects to the live version using
SYSTEM$MIGRATE_DBT_PROJECT(<object name>).
If you encounter issues after migrating an object, you can revert it to the previous versioned object
using SYSTEM$DEMIGRATE_DBT_PROJECT(<object name>).
When the bundle is fully enabled, any remaining dbt project objects that still use the previous
versioned object are automatically migrated to the live version using
SYSTEM$MIGRATE_DBT_PROJECT(<object name>). At that point,
SYSTEM$DEMIGRATE_DBT_PROJECT(<object name>) will no longer work.
Migrate all dbt project objects in your account¶
Once you’re opted in, you can use the following stored procedure to migrate all dbt project objects
in your account in a single step. The procedure accepts an optional database_name parameter: if
provided, it scopes the migration to that database only; if omitted, it migrates all dbt project
objects across your entire account. The procedure attempts to migrate each object, then returns a
summary of how many succeeded along with a list of any that failed. Object names with mixed case or
special characters are handled safely by double-quoting each identifier component.
Ref: 2362