feat(dbt): Supporting sync columns with --preserve-metadata and --merge-metadata #268
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.
The
--preserve-metadata
and--merge-metadata
flags can be used with the dbt sync command so that Superset metadata (specially metrics) is not automatically discarded during the sync. To support this flow, currently these two flags invoke theupdate_dataset()
method withreload_columns=False
. This is intentionally implemented so that thegroupby
,filterable
and other configurations are not reset to default.The issue with this approach is that the dataset columns are not synced, so in case the model was modified to include a new column (or a column was removed) this change won't reflect to Superset automatically.
This PR updates these two flags so that columns are now synced while still preserving the column metadata. It also refactors the
sync_datasets()
method to break down all required actions into helper methods.