From cfa49518add7920c1dddccba5cd59c25c1f00dc0 Mon Sep 17 00:00:00 2001 From: drethereum <71602799+drethereum@users.noreply.github.com> Date: Mon, 14 Nov 2022 12:24:26 -0700 Subject: [PATCH] added project level variable and associated IF statements to on-run-start macros to default UDF/SP updates to False (#30) --- README.md | 10 ++++++++++ dbt_project.yml | 1 + macros/create_sps.sql | 8 +++++--- macros/create_udfs.sql | 18 ++++++++++-------- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 301302b..c8e2e7b 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,17 @@ avalanche: query_tag: ``` +### Variables +To control the creation of UDF or SP macros with dbt run: +* UPDATE_UDFS_AND_SPS +When True, executes all macros included in the on-run-start hooks within dbt_project.yml on model run as normal +When False, none of the on-run-start macros are executed on model run + +Default values are False + +* Usage: +dbt run --var '{"UPDATE_UDFS_AND_SPS":True}' -m ... ### Resources: - Learn more about dbt [in the docs](https://docs.getdbt.com/docs/introduction) diff --git a/dbt_project.yml b/dbt_project.yml index e12a809..27aa340 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -40,3 +40,4 @@ on-run-start: vars: "dbt_date:time_zone": GMT + UPDATE_UDFS_AND_SPS: False diff --git a/macros/create_sps.sql b/macros/create_sps.sql index 35ba27f..62b0761 100644 --- a/macros/create_sps.sql +++ b/macros/create_sps.sql @@ -1,6 +1,8 @@ {% macro create_sps() %} - {% if target.database == 'AVALANCHE' %} - CREATE schema IF NOT EXISTS _internal; -{{ sp_create_prod_clone('_internal') }}; + {% if var("UPDATE_UDFS_AND_SPS") %} + {% if target.database == 'AVALANCHE' %} + CREATE schema IF NOT EXISTS _internal; + {{ sp_create_prod_clone('_internal') }}; + {% endif %} {% endif %} {% endmacro %} diff --git a/macros/create_udfs.sql b/macros/create_udfs.sql index cc04a84..916f09f 100644 --- a/macros/create_udfs.sql +++ b/macros/create_udfs.sql @@ -1,11 +1,13 @@ {% macro create_udfs() %} - {% set sql %} - CREATE schema if NOT EXISTS silver; -{{ create_js_hex_to_int() }}; -{{ create_udf_hex_to_int( - schema = "public" - ) }} + {% if var("UPDATE_UDFS_AND_SPS") %} + {% set sql %} + CREATE schema if NOT EXISTS silver; + {{ create_js_hex_to_int() }}; + {{ create_udf_hex_to_int( + schema = "public" + ) }} - {% endset %} - {% do run_query(sql) %} + {% endset %} + {% do run_query(sql) %} + {% endif %} {% endmacro %}