Skip to content

Commit

Permalink
Merge branch 'current' into patch-9
Browse files Browse the repository at this point in the history
  • Loading branch information
runleonarun authored Oct 25, 2024
2 parents 8632a16 + cb69cf6 commit 3f14fab
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
9 changes: 8 additions & 1 deletion website/docs/reference/global-configs/behavior-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ id: "behavior-changes"
sidebar: "Behavior changes"
---

import StateModified from '/snippets/_state-modified-compare.md';

Most flags exist to configure runtime behaviors with multiple valid choices. The right choice may vary based on the environment, user preference, or the specific invocation.

Another category of flags provides existing projects with a migration window for runtime behaviors that are changing in newer releases of dbt. These flags help us achieve a balance between these goals, which can otherwise be in tension, by:
Expand Down Expand Up @@ -83,13 +85,18 @@ Set the `skip_nodes_if_on_run_start_fails` flag to `True` to skip all selected r

### Source definitions for state:modified

:::info

<StateModified features={'/snippets/_state-modified-compare.md'}/>

:::

The flag is `False` by default.

Set `state_modified_compare_more_unrendered_values` to `True` to reduce false positives during `state:modified` checks (especially when configs differ by target environment like `prod` vs. `dev`).

Setting the flag to `True` changes the `state:modified` comparison from using rendered values to unrendered values instead. It accomplishes this by persisting `unrendered_config` during model parsing and `unrendered_database` and `unrendered_schema` configs during source parsing.


### Package override for built-in materialization

Setting the `require_explicit_package_overrides_for_builtin_materializations` flag to `True` prevents this automatic override.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
title: "Caveats to state comparison"
---

import StateModified from '/snippets/_state-modified-compare.md';

The [`state:` selection method](/reference/node-selection/methods#the-state-method) is a powerful feature, with a lot of underlying complexity. Below are a handful of considerations when setting up automated jobs that leverage state comparison.

### Seeds
Expand Down Expand Up @@ -48,6 +50,8 @@ dbt test -s "state:modified" --exclude "test_name:relationships"

To reduce false positives during `state:modified` selection due to env-aware logic, you can set the `state_modified_compare_more_unrendered_values` [behavior flag](/reference/global-configs/behavior-changes#behavior-change-flags) to `True`.

<StateModified features={'/snippets/_state-modified-compare.md'}/>

</VersionBlock>

<VersionBlock lastVersion="1.8">
Expand Down
3 changes: 3 additions & 0 deletions website/snippets/_state-modified-compare.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
You need to build the state directory using dbt v1.9 or higher, or [Versionless](/docs/dbt-versions/versionless-cloud) dbt Cloud, and you need to set `state_modified_compare_more_unrendered_values` to `true` within your dbt_project.yml.

If the state directory was built with an older dbt version or if the `state_modified_compare_more_unrendered_values` behavior change flag was either not set or set to `false`, you need to rebuild the state directory to avoid false positives during state comparison with `state:modified`.

0 comments on commit 3f14fab

Please sign in to comment.