Skip to content

Commit aa515c5

Browse files
authored
Fix: warn on dbt variable definition failure instead of raising (#5427)
1 parent e3e57d5 commit aa515c5

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

sqlmesh/dbt/context.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
import logging
34
import typing as t
45
from dataclasses import dataclass, field, replace
56
from pathlib import Path
@@ -28,6 +29,8 @@
2829
from sqlmesh.dbt.seed import SeedConfig
2930
from sqlmesh.dbt.source import SourceConfig
3031

32+
logger = logging.getLogger(__name__)
33+
3134

3235
@dataclass
3336
class DbtContext:
@@ -125,7 +128,7 @@ def _var(name: str, default: t.Optional[t.Any] = None) -> t.Any:
125128
try:
126129
rendered_variables[k] = _render_var(v)
127130
except Exception as ex:
128-
raise ConfigError(f"Failed to render variable '{k}', value '{v}': {ex}") from ex
131+
logger.warning(f"Failed to render variable '{k}', value '{v}': {ex}")
129132

130133
self.variables = rendered_variables
131134

tests/dbt/test_config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ def test_variables(assert_exp_eq, sushi_test_project):
352352
"some_var": ["foo", "bar"],
353353
},
354354
"some_var": "should be overridden in customers package",
355+
"invalid_var": "{{ ref('ref_without_closing_paren' }}",
355356
}
356357
expected_customer_variables = {
357358
"some_var": ["foo", "bar"], # Takes precedence over the root project variable
@@ -370,6 +371,7 @@ def test_variables(assert_exp_eq, sushi_test_project):
370371
{"name": "item1", "value": 1},
371372
{"name": "item2", "value": 2},
372373
],
374+
"invalid_var": "{{ ref('ref_without_closing_paren' }}",
373375
}
374376
assert sushi_test_project.packages["sushi"].variables == expected_sushi_variables
375377
assert sushi_test_project.packages["customers"].variables == expected_customer_variables

tests/fixtures/dbt/sushi_test/dbt_project.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ vars:
6666
- name: 'item2'
6767
value: 2
6868

69+
# Despite this being an invalid variable definition, dbt doesn't mind if it's unused
70+
invalid_var: "{{ ref('ref_without_closing_paren' }}"
71+
6972

7073
on-run-start:
7174
- 'CREATE TABLE IF NOT EXISTS analytic_stats (physical_table VARCHAR, evaluation_time VARCHAR);'

0 commit comments

Comments
 (0)