Skip to content

Commit 86140b2

Browse files
authored
Feat(dbt): Default to virtual_environment_mode: dev_only on init (#5208)
1 parent fe64851 commit 86140b2

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

sqlmesh/cli/project_init.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from sqlmesh.integrations.dlt import generate_dlt_models_and_settings
88
from sqlmesh.utils.date import yesterday_ds
99
from sqlmesh.utils.errors import SQLMeshError
10+
from sqlmesh.core.config.common import VirtualEnvironmentMode
1011

1112
from sqlmesh.core.config.common import DBT_PROJECT_FILENAME
1213
from sqlmesh.core.config.connection import (
@@ -114,7 +115,13 @@ def _gen_config(
114115
- ambiguousorinvalidcolumn
115116
- invalidselectstarexpansion
116117
""",
117-
ProjectTemplate.DBT: f"""# --- Model Defaults ---
118+
ProjectTemplate.DBT: f"""# --- Virtual Data Environment Mode ---
119+
# Enable Virtual Data Environments (VDE) for *development* environments.
120+
# Note that the production environment in dbt projects is not virtual by default to maintain compatibility with existing tooling.
121+
# https://sqlmesh.readthedocs.io/en/stable/guides/configuration/#virtual-data-environment-modes
122+
virtual_environment_mode: {VirtualEnvironmentMode.DEV_ONLY.lower()}
123+
124+
# --- Model Defaults ---
118125
# https://sqlmesh.readthedocs.io/en/stable/reference/model_configuration/#model-defaults
119126
model_defaults:
120127
start: {start or yesterday_ds()}

sqlmesh_dbt/operations.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ def run(self, select: t.Optional[str] = None, full_refresh: bool = False) -> Non
3434

3535
self.context.plan(
3636
select_models=select_models,
37-
no_auto_categorization=True, # everything is breaking / foward-only
3837
run=True,
3938
no_diff=True,
4039
no_prompts=True,

tests/cli/test_project_init.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from sqlmesh.utils.errors import SQLMeshError
44
from sqlmesh.cli.project_init import init_example_project, ProjectTemplate
55
from sqlmesh.utils import yaml
6+
from sqlmesh.core.context import Context
7+
from sqlmesh.core.config.common import VirtualEnvironmentMode
68

79

810
def test_project_init_dbt(tmp_path: Path):
@@ -22,3 +24,10 @@ def test_project_init_dbt(tmp_path: Path):
2224
sqlmesh_config = next(f for f in files if f.name == "sqlmesh.yaml")
2325
assert "model_defaults" in sqlmesh_config.read_text()
2426
assert "start: " in sqlmesh_config.read_text()
27+
28+
with (tmp_path / "profiles.yml").open("w") as f:
29+
yaml.dump({"jaffle_shop": {"target": "dev", "outputs": {"dev": {"type": "duckdb"}}}}, f)
30+
31+
ctx = Context(paths=tmp_path)
32+
assert ctx.config.model_defaults.start
33+
assert ctx.config.virtual_environment_mode == VirtualEnvironmentMode.DEV_ONLY

0 commit comments

Comments
 (0)