Перейти к основному содержимому

О макросе debug

Только для среды разработки

Макрос debug предназначен только для использования в контексте разработки с dbt. Не разворачивайте код в продакшн, если он использует макрос debug.

Макрос {{ debug() }} откроет отладчик iPython в контексте скомпилированного макроса dbt. Для использования отладчика необходимо установить значение переменной окружения DBT_MACRO_DEBUGGING.

Использование

my_macro.sql

{% macro my_macro() %}

{% set something_complex = my_complicated_macro() %}

{{ debug() }}

{% endmacro %}

Когда dbt дойдет до строки debug(), вы увидите что-то вроде:

$ DBT_MACRO_DEBUGGING=write dbt compile
Running with dbt=0.14.0
> /var/folders/31/mrzqbbtd3rn4hmgbhrtkfyxm0000gn/T/dbt-macro-compiled-cxvhhgu7.py(14)root()
13 environment.call(context, (undefined(name='debug') if l_0_debug is missing else l_0_debug)),
---> 14 environment.call(context, (undefined(name='source') if l_0_source is missing else l_0_source), 'src', 'seedtable'),
15 )

ipdb> l 9,12
9 l_0_debug = resolve('debug')
10 l_0_source = resolve('source')
11 pass
12 yield '%s\nselect * from %s' % (
0