diff --git a/README.md b/README.md index bc0ed63..ebe6e25 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,17 @@ bsc: 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 57b773c..7495f42 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 \ No newline at end of file diff --git a/macros/create_sps.sql b/macros/create_sps.sql index 063f5e6..211fffb 100644 --- a/macros/create_sps.sql +++ b/macros/create_sps.sql @@ -1,6 +1,8 @@ {% macro create_sps() %} - {% if target.database == 'BSC' %} - CREATE schema IF NOT EXISTS _internal; -{{ sp_create_prod_clone('_internal') }}; + {% if var("UPDATE_UDFS_AND_SPS") %} + {% if target.database == 'BSC' %} + 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 %}