@@ -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