Skip to content

Commit 8e42e2c

Browse files
authored
Merge pull request #79 from davesgonechina/feature/materialize-base-models-as-view
Suggestion to materialize base models as view or table
2 parents 0a85cb2 + fd0830f commit 8e42e2c

File tree

6 files changed

+16
-3
lines changed

6 files changed

+16
-3
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ model.
9292
* `table_name` (required): The source table you wish to generate base model SQL for.
9393
* `leading_commas` (optional, default=False): Whether you want your commas to be leading (vs trailing).
9494
* `case_sensitive_cols ` (optional, default=False): Whether your source table has case sensitive column names. If true, keeps the case of the column names from the source.
95+
* `materialized` (optional, default=None): Set materialization style (e.g. table, view, incremental) inside of the model's `config` block. If not set, materialization style will be controlled by `dbt_project.yml`
9596

9697

9798
### Usage:
@@ -101,7 +102,8 @@ model.
101102
```
102103
{{ codegen.generate_base_model(
103104
source_name='raw_jaffle_shop',
104-
table_name='customers'
105+
table_name='customers',
106+
materialized='table'
105107
) }}
106108
```
107109

integration_tests/tests/test_generate_base_models.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
%}
77

88
{% set expected_base_model %}
9+
910
with source as (
1011

1112
select * from {%raw%}{{ source('codegen_integration_tests__data_source_schema', 'codegen_integration_tests__data_source_table') }}{%endraw%}

integration_tests/tests/test_generate_base_models_all_args.sql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
source_name='codegen_integration_tests__data_source_schema',
44
table_name='codegen_integration_tests__data_source_table_case_sensitive',
55
leading_commas=True,
6-
case_sensitive_cols=True
6+
case_sensitive_cols=True,
7+
materialized='table'
78
)
89
%}
910

1011
{% set expected_base_model %}
12+
{{ "{{ config(materialized='table') }}" }}
13+
1114
with source as (
1215

1316
select * from {%raw%}{{ source('codegen_integration_tests__data_source_schema', 'codegen_integration_tests__data_source_table_case_sensitive') }}{%endraw%}

integration_tests/tests/test_generate_base_models_case_sensitive.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
%}
77

88
{% set expected_base_model %}
9+
910
with source as (
1011

1112
select * from {%raw%}{{ source('codegen_integration_tests__data_source_schema', 'codegen_integration_tests__data_source_table_case_sensitive') }}{%endraw%}

integration_tests/tests/test_generate_base_models_leading.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
%}
88

99
{% set expected_base_model %}
10+
1011
with source as (
1112

1213
select * from {%raw%}{{ source('codegen_integration_tests__data_source_schema', 'codegen_integration_tests__data_source_table') }}{%endraw%}

macros/generate_base_model.sql

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
{% macro generate_base_model(source_name, table_name, leading_commas=False, case_sensitive_cols=False) %}
1+
{% macro generate_base_model(source_name, table_name, leading_commas=False, case_sensitive_cols=False, materialized=None) %}
22

33
{%- set source_relation = source(source_name, table_name) -%}
44

55
{%- set columns = adapter.get_columns_in_relation(source_relation) -%}
66
{% set column_names=columns | map(attribute='name') %}
77
{% set base_model_sql %}
8+
9+
{%- if materialized is not none -%}
10+
{{ "{{ config(materialized='" ~ materialized ~ "') }}" }}
11+
{%- endif %}
12+
813
with source as (
914

1015
select * from {% raw %}{{ source({% endraw %}'{{ source_name }}', '{{ table_name }}'{% raw %}) }}{% endraw %}

0 commit comments

Comments
 (0)