1616from sqlmesh .utils .conversions import make_serializable
1717
1818# Override the file name to prevent dbt commands from invalidating the cache.
19- dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
19+ if hasattr (dbt_constants , "PARTIAL_PARSE_FILE_NAME" ):
20+ dbt_constants .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
21+ else :
22+ from dbt .parser import manifest as dbt_manifest
23+
24+ dbt_manifest .PARTIAL_PARSE_FILE_NAME = "sqlmesh_partial_parse.msgpack"
2025
2126import jinja2
2227from dbt .adapters .factory import register_adapter , reset_adapters
@@ -379,11 +384,17 @@ def _load_on_run_start_end(self) -> None:
379384
380385 if "on-run-start" in node .tags :
381386 self ._on_run_start_per_package [node .package_name ][node_name ] = HookConfig (
382- sql = sql , index = node .index or 0 , path = node_path , dependencies = dependencies
387+ sql = sql ,
388+ index = getattr (node , "index" , None ) or 0 ,
389+ path = node_path ,
390+ dependencies = dependencies ,
383391 )
384392 else :
385393 self ._on_run_end_per_package [node .package_name ][node_name ] = HookConfig (
386- sql = sql , index = node .index or 0 , path = node_path , dependencies = dependencies
394+ sql = sql ,
395+ index = getattr (node , "index" , None ) or 0 ,
396+ path = node_path ,
397+ dependencies = dependencies ,
387398 )
388399
389400 @property
@@ -599,6 +610,9 @@ def _macro_references(
599610 manifest : Manifest , node : t .Union [ManifestNode , Macro ]
600611) -> t .Set [MacroReference ]:
601612 result : t .Set [MacroReference ] = set ()
613+ if not hasattr (node , "depends_on" ):
614+ return result
615+
602616 for macro_node_id in node .depends_on .macros :
603617 if not macro_node_id :
604618 continue
@@ -614,18 +628,20 @@ def _macro_references(
614628
615629def _refs (node : ManifestNode ) -> t .Set [str ]:
616630 if DBT_VERSION >= (1 , 5 , 0 ):
617- result = set ()
631+ result : t .Set [str ] = set ()
632+ if not hasattr (node , "refs" ):
633+ return result
618634 for r in node .refs :
619- ref_name = f"{ r .package } .{ r .name } " if r .package else r .name
635+ ref_name = f"{ r .package } .{ r .name } " if r .package else r .name # type: ignore
620636 if getattr (r , "version" , None ):
621- ref_name = f"{ ref_name } _v{ r .version } "
637+ ref_name = f"{ ref_name } _v{ r .version } " # type: ignore
622638 result .add (ref_name )
623639 return result
624640 return {"." .join (r ) for r in node .refs } # type: ignore
625641
626642
627643def _sources (node : ManifestNode ) -> t .Set [str ]:
628- return {"." .join (s ) for s in node . sources }
644+ return {"." .join (s ) for s in getattr ( node , " sources" , []) }
629645
630646
631647def _model_node_id (model_name : str , package : str ) -> str :
0 commit comments