Feat!: forward-only changes schema modification check#2576
Merged
Conversation
0a0eb2e to
d60e09e
Compare
eakmanrq
reviewed
May 7, 2024
eakmanrq
reviewed
May 7, 2024
eakmanrq
reviewed
May 7, 2024
izeigerman
reviewed
May 7, 2024
izeigerman
reviewed
May 7, 2024
izeigerman
reviewed
May 7, 2024
izeigerman
reviewed
May 7, 2024
izeigerman
reviewed
May 7, 2024
tobymao
reviewed
May 7, 2024
tobymao
reviewed
May 8, 2024
tobymao
reviewed
May 8, 2024
tobymao
reviewed
May 8, 2024
tobymao
reviewed
May 8, 2024
tobymao
reviewed
May 8, 2024
tobymao
reviewed
May 8, 2024
tobymao
reviewed
May 8, 2024
50d801e to
9215b86
Compare
izeigerman
reviewed
May 15, 2024
izeigerman
reviewed
May 15, 2024
1815d71 to
7d10bec
Compare
tobymao
reviewed
May 15, 2024
tobymao
reviewed
May 15, 2024
tobymao
reviewed
May 15, 2024
tobymao
reviewed
May 15, 2024
b602daa to
0995c7e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Some forward-only changes require schema modifications that drop existing data (e.g., changing a column type from
strtoint). If a user inadvertently makes such a change, they will lose existing data. This feature identifies destructive changes and optionally warns/errors before they occur to avoid accidental data loss.The feature introduces a new model kind property
on_destructive_changewith valid valuesallow,warn, anderror(default iserror). Theon_destructive_changeproperty only applies to incremental models and can be specified as a model default.Users may want to temporarily allow a destructive change to a forward-only model. The feature introduces to the
plancommand a new--allow-destructive-modelselector to temporarily allow destructive changes.Of note
Defaults
on_destructive_changeis a property of a model kindERRORALLOWPlan time check
SchemaDifferand engine-specific rules to determine whether a change is destructive.columns_to_typesis known.columns_to_typesfor the model and all directly modified ancestors.Run time check
Alters passed fromSchemaDiffertoalter_table()to determine whether a change is destructive.dbt
on_schema_changesetting to sqlmeshon_destructive_changeon_schema_changevalues are mapped toon_destructive_changeas follows: