@@ -14,6 +14,7 @@ limitations under the License.*/
1414
1515{%- macro apply_twin_strategy(target_relation) - %}
1616 {%- set twin_strategy = config .get (' twin_strategy' , validator= validation .any [basestring]) or ' clone' - %}
17+ {{ log(" TARGET: " ~ target_relation, True) }}
1718 {%- if target_relation .type == ' view' - %}
1819 {%- if twin_strategy != ' allow' - %}
1920 {%- set table_relation = api .Relation .create(
@@ -24,12 +25,13 @@ limitations under the License.*/
2425 {{ adapter .drop_relation (table_relation) }}
2526 {%- endif - %}
2627 {%- elif target_relation .type == ' table' - %}
27- {%- if twin_strategy in [' prevent' , ' clone' ] - %}
28- {%- set view_relation = api .Relation .create(
29- identifier= generate_alias_name_impl(model .name , config .get (' alias' , validator= validation .any [basestring]), model),
30- schema= generate_schema_name_impl(target .schema , config .get (' schema' , validator= validation .any [basestring]), model),
31- database= generate_database_name_impl(target .database , config .get (' database' , validator= validation .any [basestring]), model),
32- type= ' view' ) - %}
28+ {%- set view_relation = api .Relation .create(
29+ identifier= generate_alias_name_impl(model .name , config .get (' alias' , validator= validation .any [basestring]), model),
30+ schema= generate_schema_name_impl(target .schema , config .get (' schema' , validator= validation .any [basestring]), model),
31+ database= generate_database_name_impl(target .database , config .get (' database' , validator= validation .any [basestring]), model),
32+ type= ' view' ) - %}
33+ {%- set conflicting_view = adapter .get_relation (database= view_relation .database , schema= view_relation .schema , identifier= view_relation .identifier ) - %}
34+ {%- if conflicting_view is not none - %}
3335 {%- if twin_strategy == ' prevent' - %}
3436 {{ adapter .drop_relation (view_relation) }}
3537 {%- elif twin_strategy == ' clone' - %}
0 commit comments