Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Set the dbt invocation context before loading the profile #2846

Conversation

izeigerman
Copy link
Member

Fixes the following exception:

...
File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/sqlmesh/dbt/manifest.py", line 295, in _load_profile
    return Profile.from_raw_profiles(
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/config/profile.py", line 369, in from_raw_profiles
    return cls.from_raw_profile_info(
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/config/profile.py", line 315, in from_raw_profile_info
    target_name, profile_data = cls.render_profile(
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/config/profile.py", line 284, in render_profile
    profile_data = renderer.render_data(raw_profile_data)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/config/renderer.py", line 53, in render_data
    return deep_map_render(self.render_entry, data)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt_common/utils/dict.py", line 129, in deep_map_render
    return _deep_map_render(func, value, ())
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt_common/utils/dict.py", line 94, in _deep_map_render
    ret = {k: _deep_map_render(func, v, (keypath + (str(k),))) for k, v in value.items()}
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt_common/utils/dict.py", line 94, in <dictcomp>
    ret = {k: _deep_map_render(func, v, (keypath + (str(k),))) for k, v in value.items()}
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt_common/utils/dict.py", line 96, in _deep_map_render
    ret = func(value, keypath)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/config/renderer.py", line 37, in render_entry
    return self.render_value(value, keypath)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/config/renderer.py", line 203, in render_value
    raise ex
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/config/renderer.py", line 196, in render_value
    rendered = super().render_value(value, keypath)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/config/renderer.py", line 46, in render_value
    return get_rendered(value, self.context, native=True)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/clients/jinja.py", line 146, in get_rendered
    rendered = render_template(template, ctx, node)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt_common/clients/jinja.py", line 539, in render_template
    return template.render(ctx)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt_common/clients/jinja.py", line 228, in render
    return self.environment.handle_exception()
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/jinja2/environment.py", line 939, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt_common/clients/jinja.py", line 184, in quoted_native_concat
    head = list(islice(nodes, 2))
  File "<template>", line 1, in top-level template code
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/jinja2/sandbox.py", line 394, in call
    return __context.call(__obj, *args, **kwargs)
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt/context/secret.py", line 32, in env_var
    env = get_invocation_context().env
  File "/Users/sung/Desktop/git_repos/jaffle_shop_duckdb/venv/lib/python3.10/site-packages/dbt_common/context.py", line 53, in get_invocation_context
    ctx = invocation_var.get()
LookupError: <ContextVar name='DBT_INVOCATION_CONTEXT_VAR' at 0x14ad2ed40>

@izeigerman izeigerman requested a review from a team July 1, 2024 18:19
@izeigerman izeigerman merged commit 034476e into main Jul 1, 2024
15 checks passed
@izeigerman izeigerman deleted the fix-dbt-manifest-set-invocation-context-before-loading-profile branch July 1, 2024 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant