Skip to content

Commit 28a02a5

Browse files
izeigermanthemisvaltinos
authored andcommitted
A few fixes (#4129)
1 parent b303b64 commit 28a02a5

3 files changed

Lines changed: 10 additions & 8 deletions

File tree

sqlmesh/core/context.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ def __init__(
364364
self._environment_statements: t.List[EnvironmentStatements] = []
365365
self._excluded_requirements: t.Set[str] = set()
366366
self._default_catalog: t.Optional[str] = None
367-
self._default_catalog_per_gateway: t.Dict[str, str] = {}
367+
self._default_catalog_per_gateway: t.Optional[t.Dict[str, str]] = None
368368
self._linters: t.Dict[str, Linter] = {}
369369
self._loaded: bool = False
370370

@@ -2227,7 +2227,7 @@ def engine_adapters(self) -> t.Dict[str, EngineAdapter]:
22272227
@cached_property
22282228
def default_catalog_per_gateway(self) -> t.Dict[str, str]:
22292229
"""Returns the catalogs for each engine adapter in a multi virtual layer setup when the catalog isn't shared."""
2230-
if self.gateway_managed_virtual_layer:
2230+
if self._default_catalog_per_gateway is None:
22312231
self._default_catalog_per_gateway = {
22322232
name: adapter.default_catalog
22332233
for name, adapter in self.engine_adapters.items()

sqlmesh/core/context_diff.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ class ContextDiff(PydanticModel):
5353
"""Whether the currently stored environment record is in unfinalized state."""
5454
normalize_environment_name: bool
5555
"""Whether the environment name should be normalized."""
56-
gateway_managed_virtual_layer: bool = False
56+
previous_gateway_managed_virtual_layer: bool
57+
"""Whether the previous environment's virtual layer's views were created by the model specified gateways."""
58+
gateway_managed_virtual_layer: bool
5759
"""Whether the virtual layer's views will be created by the model specified gateways."""
5860
create_from: str
5961
"""The name of the environment the target environment will be created from if new."""
@@ -121,7 +123,7 @@ def create(
121123
env = state_reader.get_environment(environment)
122124

123125
create_from_env_exists = False
124-
if env is None or env.expired or env.gateway_managed != gateway_managed_virtual_layer:
126+
if env is None or env.expired:
125127
env = state_reader.get_environment(create_from.lower())
126128

127129
if not env and create_from != c.PROD:
@@ -229,6 +231,7 @@ def create(
229231
diff_rendered=diff_rendered,
230232
previous_environment_statements=previous_environment_statements,
231233
environment_statements=environment_statements,
234+
previous_gateway_managed_virtual_layer=env.gateway_managed if env else False,
232235
gateway_managed_virtual_layer=gateway_managed_virtual_layer,
233236
)
234237

@@ -277,6 +280,7 @@ def has_changes(self) -> bool:
277280
or self.is_unfinalized_environment
278281
or self.has_requirement_changes
279282
or self.has_environment_statements_changes
283+
or self.previous_gateway_managed_virtual_layer != self.gateway_managed_virtual_layer
280284
)
281285

282286
@property

sqlmesh/core/state_sync/db/facade.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,7 @@ def promote(
199199
)
200200
!= table_infos[name].qualified_view_name.for_environment(environment.naming_info)
201201
}
202-
if (
203-
not existing_environment.expired
204-
and existing_environment.gateway_managed == environment.gateway_managed
205-
):
202+
if not existing_environment.expired:
206203
if environment.previous_plan_id != existing_environment.plan_id:
207204
raise ConflictingPlanError(
208205
f"Plan '{environment.plan_id}' is no longer valid for the target environment '{environment.name}'. "
@@ -229,6 +226,7 @@ def promote(
229226
existing_environment
230227
and existing_environment.finalized_ts
231228
and not existing_environment.expired
229+
and existing_environment.gateway_managed == environment.gateway_managed
232230
):
233231
# Only promote new snapshots.
234232
added_table_infos -= set(existing_environment.promoted_snapshots)

0 commit comments

Comments
 (0)