О переменной контекста project_name
Переменная контекста project_name
возвращает name
для проекта верхнего уровня, который выполняется с помощью dbt. Эта переменная может быть использована для передачи выполнения макросу проекта верхнего уровня, если он существует.
Пример использования
redshift/macros/helper.sql
/*
Этот макрос выполняет очистку таблиц в базе данных Redshift. Если в проекте верхнего уровня существует макрос с именем `get_tables_to_vacuum`, этот макрос вызовет _тот_ макрос для определения таблиц, которые нужно очистить. Если макрос не определен в корневом проекте, этот макрос использует стандартную реализацию.
*/
{% macro vacuum_tables() %}
{% set root_project = context[project_name] %}
{% if root_project.get_tables_to_vacuum %}
{% set tables = root_project.get_tables_to_vacuum() %}
{% else %}
{% set tables = redshift.get_tables_to_vacuum() %}
{% endif %}
{% for table in tables %}
{% do redshift.vacuum_table(table) %}
{% endfor %}
{% endmacro %}
0