I created another macro that’s helpful for debugging this drop_old_relations
macro. Prints the nodes (models, seeds, snapshots) in your DBT graph:
{% macro print_graph() %}
{% if execute %}
{% set query %}
{%- for node in graph.nodes.values() | selectattr("resource_type", "equalto", "model") | list
+ graph.nodes.values() | selectattr("resource_type", "equalto", "seed") | list
+ graph.nodes.values() | selectattr("resource_type", "equalto", "snapshot") | list %}
SELECT
'{{node.config.schema}}' AS schema_name
, '{{node.name}}' AS ref_name
, '{{node.alias}}' AS alias
, '{{node.resource_type}}' AS resource_type
{% if not loop.last %} UNION ALL {% endif %}
{%- endfor %}
{% endset %}
{%- set result = run_query(query) -%}
{% if result %}
{%- for node in result -%}
{% do log(node, True) %}
{%- endfor -%}
{% endif %}
{% endif %}
{% endmacro %}
Runnable with dbt run-operation print_graph