1515from sqlmesh .utils .conversions import make_serializable
1616
1717# Override the file name to prevent dbt commands from invalidating the cache.
18- dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
18+ if hasattr (dbt_constants , "PARTIAL_PARSE_FILE_NAME" ):
19+ dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
20+ else :
21+ from dbt .parser import manifest as dbt_manifest
22+
23+ dbt_manifest .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
1924
2025import jinja2
2126from dbt .adapters .factory import register_adapter , reset_adapters
@@ -378,11 +383,17 @@ def _load_on_run_start_end(self) -> None:
378383
379384 if "on-run-start" in node .tags :
380385 self ._on_run_start_per_package [node .package_name ][node_name ] = HookConfig (
381- sql = sql , index = node .index or 0 , path = node_path , dependencies = dependencies
386+ sql = sql ,
387+ index = getattr (node , "index" , None ) or 0 ,
388+ path = node_path ,
389+ dependencies = dependencies ,
382390 )
383391 else :
384392 self ._on_run_end_per_package [node .package_name ][node_name ] = HookConfig (
385- sql = sql , index = node .index or 0 , path = node_path , dependencies = dependencies
393+ sql = sql ,
394+ index = getattr (node , "index" , None ) or 0 ,
395+ path = node_path ,
396+ dependencies = dependencies ,
386397 )
387398
388399 @property
@@ -598,6 +609,9 @@ def _macro_references(
598609 manifest : Manifest , node : t .Union [ManifestNode , Macro ]
599610) -> t .Set [MacroReference ]:
600611 result : t .Set [MacroReference ] = set ()
612+ if not hasattr (node , "depends_on" ):
613+ return result
614+
601615 for macro_node_id in node .depends_on .macros :
602616 if not macro_node_id :
603617 continue
@@ -613,18 +627,20 @@ def _macro_references(
613627
614628def _refs (node : ManifestNode ) -> t .Set [str ]:
615629 if DBT_VERSION >= (1 , 5 , 0 ):
616- result = set ()
630+ result : t .Set [str ] = set ()
631+ if not hasattr (node , "refs" ):
632+ return result
617633 for r in node .refs :
618- ref_name = f"{ r .package } .{ r .name } " if r .package else r .name
634+ ref_name = f"{ r .package } .{ r .name } " if r .package else r .name # type: ignore
619635 if getattr (r , "version" , None ):
620- ref_name = f"{ ref_name } _v{ r .version } "
636+ ref_name = f"{ ref_name } _v{ r .version } " # type: ignore
621637 result .add (ref_name )
622638 return result
623639 return {"." .join (r ) for r in node .refs } # type: ignore
624640
625641
626642def _sources (node : ManifestNode ) -> t .Set [str ]:
627- return {"." .join (s ) for s in node . sources }
643+ return {"." .join (s ) for s in getattr ( node , " sources" , []) }
628644
629645
630646def _model_node_id (model_name : str , package : str ) -> str :
0 commit comments