Skip to content

Instantly share code, notes, and snippets.

@adinsmoor
Created September 18, 2025 03:58
Show Gist options
  • Select an option

  • Save adinsmoor/c003e57e2cf770be71ab1a324c7d48ba to your computer and use it in GitHub Desktop.

Select an option

Save adinsmoor/c003e57e2cf770be71ab1a324c7d48ba to your computer and use it in GitHub Desktop.
Example xref custom macro
{% macro xref() %}
-- extract user-provided positional and keyword arguments
{% set version = kwargs.get('version') %}
{% if (varargs | length) == 1 %}
{% set modelname = varargs[0] %}
{% else %}
{% set packagename = varargs[0] %}
{% set modelname = varargs[1] %}
{% endif %}
-- call builtins.ref based on provided positional arguments
{% set rel = None %}
{% if packagename is not none %}
{% set rel = builtins.ref(packagename, modelname, version=version) %}
{% set env_id = env_var("DBT_ENV_ID") %}
{% set current_db = rel.database %}
-- strip last part after "_" if it exists
{% set base_db = current_db.split('_')[:-1] | join('_') if '_' in current_db else current_db %}
-- append env_id
{% set new_db = base_db ~ "_" ~ env_id %}
{% set newrel = rel.replace_path(database=new_db) %}
{% else %}
{% set newrel = builtins.ref(modelname, version=version) %}
{% endif %}
-- finally, we return the new relation
{% do return(newrel) %}
{% endmacro %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment