Skip to content

Commit 471f58d

Browse files
committed
Initial work on contract constraints
Initial work on dbt constraints using contracts. Items to note: * contracts do not appear to be enforced if model schema.yml is namespaced with dbt_business_intelligence * main fix here is addition of fabric__table_columns_and_constraints macro, which is a redirect to get around this issue: dbt-msft/dbt-sqlserver#494
1 parent 26f2032 commit 471f58d

7 files changed

+574
-830
lines changed

dbt_project.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,13 @@ models:
5555
+schema: observability
5656
sources:
5757
+enabled: false
58-
+grants:
59-
select: ['business_analyst_role']
6058

6159
seeds:
6260
dbt_business_intelligence:
6361
schema: staging # all seeds in this project will use the mapping schema by default
6462

6563
dispatch:
6664
- macro_namespace: dbt_utils
67-
search_order: ['tsql_utils', 'dbt_utils']
65+
search_order: ['dbt_business_intelligence', 'tsql_utils', 'dbt_utils']
6866
- macro_namespace: dbt_date
69-
search_order: ['tsql_utils', 'dbt_date']
70-
71-
on-run-end:
72-
- "{{ dbt_observability.upload_results(results) }}"
67+
search_order: ['dbt_business_intelligence', 'tsql_utils', 'dbt_date']
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{% macro fabric__table_columns_and_constraints(relation) -%}
2+
{%- do log("REDIRECT!!!: " ~ relation, info=true) -%}
3+
{{ fabric__build_columns_constraints(relation) }}
4+
{% endmacro %}

macros/generate_surrogate_key.sql

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{%- macro sqlserver__generate_surrogate_key(field_list) -%}
2+
3+
{%- if var('surrogate_key_treat_nulls_as_empty_strings', False) -%}
4+
{%- set default_null_value = "" -%}
5+
{%- else -%}
6+
{%- set default_null_value = '_dbt_utils_surrogate_key_null_' -%}
7+
{%- endif -%}
8+
9+
{%- set fields = [] -%}
10+
11+
{%- for field in field_list -%}
12+
13+
{%- do fields.append(
14+
"coalesce(cast(" ~ field ~ " as " ~ dbt.type_string() ~ "), '" ~ default_null_value ~"')"
15+
) -%}
16+
17+
{%- if not loop.last %}
18+
{%- do fields.append("'-'") -%}
19+
{%- endif -%}
20+
21+
{%- endfor -%}
22+
23+
{%- if fields|length > 1 %}
24+
{{ dbt.hash(dbt.concat(fields)) }}
25+
{%- else -%}
26+
{{ dbt.hash(fields[0]) }}
27+
{%- endif -%}
28+
29+
{%- endmacro -%}

macros/sqlserver__create_constraints.sql

Lines changed: 0 additions & 283 deletions
This file was deleted.

0 commit comments

Comments
 (0)