Upgrading¶
What changes for a running project from one release to the next. Each release lists breaking changes first: things that make nodes build, change the records, or need a change in your setup. The full list of commits is in the changelog.
Until 1.0, the settings and the record schema may change in a minor release.
0.2.0¶
Breaking changes¶
- Every node builds once after the upgrade. The code hash no longer depends on catalog and schema names (see Hashing), so
hash_versionis now2. Records written by 0.1.x count ascode_changed. Plan the first run after the upgrade as a full build, or run it inshadowmode first.
Behavior changes¶
- New reason code
upstream_code_changed. A node that reads through a view builds when that view has other code than at the node's last build, also when no upstream table has new data. Changes through macros and variables count. Before, such a node was reused. Dashboards or alerts that list reason codes need the new one. See Decision rules. - A table rebuilt with 0 rows counts as new data. A
CREATE OR REPLACE TABLEorINSERT OVERWRITEthat writes no rows empties the table, and its dependents now build. Before, they were reused with the old data. - Rule numbers from 12 on went up by one to make room for the new rule. The reason codes of the other rules did not change.
- A view that reads another relation than at its last build builds (
code_changed), for example with and without--defer, also withcompare_unrendered_code. - Views are covered by
target_modified. A view's data version is now a hash of its definition in the warehouse, so a view replaced by a run without hodor builds once. - Rendered hooks are part of the config hash. A hook whose SQL changes through
var(),env_var()ortargetnow builds the node (config_changed). - Views without records count as unknown. A node that reads through a view hodor has no build record of builds (
unknown_upstream) until hodor has built that view once. A base view read through--deferuses its compiled SQL from the--statemanifest instead. Before, dbt's checksum of the view's file was compared, which missed changes through macros and variables. - Fail-open after the decision. When replaying a recorded test result fails, the test runs (
hodor_error) instead of failing the run. A hook that fails while it runs on reuse fails the node, as before, so no hook runs twice.
New¶
- Slim CI.
--deferand--favor-stateare supported, and each push of a pull request reuses what the last push built. A table made bydbt clonebuilds once, then is reused. See Slim CI.