Skip to content

Commit dc06db6

Browse files
authored
Chore: Refactor migration script application (#2514)
* Chore: Refactor migration script application * PR feedback
1 parent 3046555 commit dc06db6

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

sqlmesh/core/state_sync/engine_adapter.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -917,23 +917,13 @@ def migrate(
917917
) -> None:
918918
"""Migrate the state sync to the latest SQLMesh / SQLGlot version."""
919919
versions = self.get_versions(validate=False)
920-
migrations = MIGRATIONS[versions.schema_version :]
921920

922-
if (
923-
not migrations
924-
and major_minor(SQLGLOT_VERSION) == versions.minor_sqlglot_version
925-
and major_minor(SQLMESH_VERSION) == versions.minor_sqlmesh_version
926-
):
927-
return
921+
try:
922+
migrate_rows = self._apply_migrations(default_catalog, skip_backup)
928923

929-
migrate_rows = migrations or major_minor(SQLGLOT_VERSION) != versions.minor_sqlglot_version
930-
if not skip_backup and migrate_rows:
931-
self._backup_state()
924+
if not migrate_rows and major_minor(SQLMESH_VERSION) == versions.minor_sqlmesh_version:
925+
return
932926

933-
try:
934-
for migration in migrations:
935-
logger.info(f"Applying migration {migration}")
936-
migration.migrate(self, default_catalog=default_catalog)
937927
if migrate_rows:
938928
self._migrate_rows(promoted_snapshots_only)
939929
# Cleanup plan DAGs since we currently don't migrate snapshot records that are in there.
@@ -992,6 +982,24 @@ def _backup_state(self) -> None:
992982
backup_name, exp.select("*").from_(table), exists=False
993983
)
994984

985+
def _apply_migrations(
986+
self,
987+
default_catalog: t.Optional[str],
988+
skip_backup: bool,
989+
) -> bool:
990+
versions = self.get_versions(validate=False)
991+
migrations = MIGRATIONS[versions.schema_version :]
992+
993+
migrate_rows = migrations or major_minor(SQLGLOT_VERSION) != versions.minor_sqlglot_version
994+
if not skip_backup and migrate_rows:
995+
self._backup_state()
996+
997+
for migration in migrations:
998+
logger.info(f"Applying migration {migration}")
999+
migration.migrate(self, default_catalog=default_catalog)
1000+
1001+
return bool(migrate_rows)
1002+
9951003
def _migrate_rows(self, promoted_snapshots_only: bool) -> None:
9961004
logger.info("Fetching environments")
9971005
environments = self.get_environments()

0 commit comments

Comments
 (0)