Skip to content

Commit 925b046

Browse files
authored
Fix: Avoid using model aliases to produce versioned model names when loading dbt projects (#3150)
1 parent d8bfd95 commit 925b046

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

sqlmesh/dbt/basemodel.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,9 @@ def table_name(self) -> str:
184184
@property
185185
def config_name(self) -> str:
186186
"""
187-
Get the model's config name (package_name.alias)
187+
Get the model's config name (package_name.name)
188188
"""
189-
return f"{self.package_name}.{self.alias}"
189+
return f"{self.package_name}.{self.name}"
190190

191191
def dialect(self, context: DbtContext) -> str:
192192
return self.dialect_ or context.default_dialect

sqlmesh/dbt/context.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,14 @@ def refs(self) -> t.Dict[str, t.Union[ModelConfig, SeedConfig]]:
185185
for model in t.cast(
186186
t.Dict[str, t.Union[ModelConfig, SeedConfig]], {**self._seeds, **self._models}
187187
).values():
188-
self._refs[model.alias or model.name] = model
189-
self._refs[model.config_name] = model
190-
if model.version is not None and model.version == model.latest_version:
191-
self._refs[model.name] = model
192-
self._refs[f"{model.package_name}.{model.name}"] = model
188+
name = model.name
189+
config_name = model.config_name
190+
if model.version == model.latest_version:
191+
self._refs[name] = model
192+
self._refs[config_name] = model
193+
if model.version:
194+
self._refs[f"{name}_v{model.version}"] = model
195+
self._refs[f"{config_name}_v{model.version}"] = model
193196
return self._refs
194197

195198
@property

sqlmesh/dbt/manifest.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,11 @@ def _load_models_and_seeds(self) -> None:
229229
)
230230
node_config = _node_base_config(node)
231231

232+
node_name = node.name
233+
node_version = getattr(node, "version", None)
234+
if node_version:
235+
node_name = f"{node_name}_v{node_version}"
236+
232237
if node.resource_type in {"model", "snapshot"}:
233238
sql = node.raw_code if DBT_VERSION >= (1, 3) else node.raw_sql # type: ignore
234239
dependencies = Dependencies(
@@ -239,15 +244,14 @@ def _load_models_and_seeds(self) -> None:
239244
self._flatten_dependencies_from_macros(dependencies.macros, node.package_name)
240245
)
241246

242-
# Using the alias instead of the name because the alias captures the version of the model.
243-
self._models_per_package[node.package_name][node.alias] = ModelConfig(
247+
self._models_per_package[node.package_name][node_name] = ModelConfig(
244248
sql=sql,
245249
dependencies=dependencies,
246250
tests=tests,
247251
**node_config,
248252
)
249253
else:
250-
self._seeds_per_package[node.package_name][node.alias] = SeedConfig(
254+
self._seeds_per_package[node.package_name][node_name] = SeedConfig(
251255
dependencies=Dependencies(macros=macro_references),
252256
tests=tests,
253257
**node_config,

0 commit comments

Comments
 (0)