An 1709/make dev refresh dbt cloud op (#38)

* dev refresh will now run on dbt cloud

* remove unintended file commit
This commit is contained in:
desmond-hui 2022-06-30 18:07:25 -07:00 committed by GitHub
parent 6854a94ed1
commit ab3c73e994
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 23 deletions

View File

@ -25,10 +25,9 @@ clean-targets: # directories to be removed by `dbt clean`
- "dbt_packages"
on-run-start:
- "{{create_sps()}}"
- "{{create_tasks()}}"
- "{{create_udfs()}}"
- "{{sp_create_bulk_get_topshot_moments_minted_metadata()}}"
- '{{create_sps()}}'
- '{{create_udfs()}}'
- '{{sp_create_bulk_get_topshot_moments_minted_metadata()}}'
# Configuring models
# Full documentation: https://docs.getdbt.com/docs/configuring-models

View File

@ -1,7 +0,0 @@
{% macro create_tasks() %}
{% if target.database == 'FLOW' %}
CREATE SCHEMA IF NOT EXISTS _internal;
{{ task_run_sp_create_prod_clone('_internal') }};
{% endif %}
{% endmacro %}

View File

@ -0,0 +1,7 @@
{% macro run_sp_create_prod_clone() %}
{% set clone_query %}
call flow._internal.create_prod_clone('flow', 'flow_dev', 'internal_dev');
{% endset %}
{% do run_query(clone_query) %}
{% endmacro %}

View File

@ -33,13 +33,33 @@ $$
snowflake.execute({sqlText: `GRANT OWNERSHIP ON TABLE ${DESTINATION_DB_NAME}.${schema}.${table_name} TO ROLE ${ROLE_NAME} COPY CURRENT GRANTS;`});
}
var existing_procedures = snowflake.execute({sqlText: `SELECT stage_schema, stage_name
var existing_stages = snowflake.execute({sqlText: `SELECT stage_schema, stage_name
FROM ${DESTINATION_DB_NAME}.INFORMATION_SCHEMA.STAGES;`});
while (existing_stages.next()) {
var schema = existing_stages.getColumnValue(1)
var stage_name = existing_stages.getColumnValue(2)
snowflake.execute({sqlText: `GRANT OWNERSHIP ON STAGE ${DESTINATION_DB_NAME}.${schema}.${stage_name} to role ${ROLE_NAME} REVOKE CURRENT GRANTS;`});
}
var existing_functions = snowflake.execute({sqlText: `SELECT function_schema, function_name, concat('(',array_to_string(regexp_substr_all(argument_signature, 'VARCHAR|NUMBER|FLOAT|ARRAY|VARIANT|OBJECT|DOUBLE'),','),')') as argument_signature
FROM ${DESTINATION_DB_NAME}.INFORMATION_SCHEMA.FUNCTIONS;`});
while (existing_functions.next()) {
var schema = existing_functions.getColumnValue(1)
var function_name = existing_functions.getColumnValue(2)
var argument_signature = existing_functions.getColumnValue(3)
snowflake.execute({sqlText: `GRANT OWNERSHIP ON FUNCTION ${DESTINATION_DB_NAME}.${schema}.${function_name}${argument_signature} to role ${ROLE_NAME} REVOKE CURRENT GRANTS;`});
}
var existing_procedures = snowflake.execute({sqlText: `SELECT procedure_schema, procedure_name, concat('(',array_to_string(regexp_substr_all(argument_signature, 'VARCHAR|NUMBER|FLOAT|ARRAY|VARIANT|OBJECT|DOUBLE'),','),')') as argument_signature
FROM ${DESTINATION_DB_NAME}.INFORMATION_SCHEMA.PROCEDURES;`});
while (existing_procedures.next()) {
var schema = existing_procedures.getColumnValue(1)
var stage_name = existing_procedures.getColumnValue(2)
snowflake.execute({sqlText: `GRANT OWNERSHIP ON STAGE ${DESTINATION_DB_NAME}.${schema}.${stage_name} to role ${ROLE_NAME} REVOKE CURRENT GRANTS;`});
var procedure_name = existing_procedures.getColumnValue(2)
var argument_signature = existing_procedures.getColumnValue(3)
snowflake.execute({sqlText: `GRANT OWNERSHIP ON PROCEDURE ${DESTINATION_DB_NAME}.${schema}.${procedure_name}${argument_signature} to role ${ROLE_NAME} REVOKE CURRENT GRANTS;`});
}
snowflake.execute({sqlText: `GRANT OWNERSHIP ON DATABASE ${DESTINATION_DB_NAME} TO ROLE ${ROLE_NAME};`})

View File

@ -1,9 +0,0 @@
{% macro task_run_sp_create_prod_clone(target_schema) -%}
create or replace task {{target_schema}}.run_sp_create_prod_clone
warehouse = dbt_cloud
schedule = 'USING CRON 15 10 * * * UTC'
as
call {{ target_schema }}.create_prod_clone('flow', 'flow_dev', 'internal_dev');
alter task {{ target_schema }}.run_sp_create_prod_clone resume
{%- endmacro %}