@@ -129,6 +129,14 @@ def apply_total(repo_config: RepoConfig, repo_path: Path):
129129 all_to_keep .extend (repo .feature_tables )
130130 all_to_keep .extend (repo .feature_views )
131131
132+ entities_to_delete : List [Entity ] = []
133+ repo_entities_names = set ([e .name for e in repo .entities ])
134+ for registry_entity in registry .list_entities (project = project ):
135+ if registry_entity .name not in repo_entities_names :
136+ entities_to_delete .append (registry_entity )
137+
138+ entities_to_keep : List [Entity ] = repo .entities
139+
132140 for name in [view .name for view in repo .feature_tables ] + [
133141 table .name for table in repo .feature_views
134142 ]:
@@ -141,10 +149,13 @@ def apply_total(repo_config: RepoConfig, repo_path: Path):
141149 click .echo (
142150 f"Removing infrastructure for { Style .BRIGHT + Fore .GREEN } { name } { Style .RESET_ALL } "
143151 )
152+
144153 infra_provider .update_infra (
145154 project ,
146155 tables_to_delete = all_to_delete ,
147156 tables_to_keep = all_to_keep ,
157+ entities_to_delete = entities_to_delete ,
158+ entities_to_keep = entities_to_keep ,
148159 partial = False ,
149160 )
150161
@@ -160,8 +171,13 @@ def teardown(repo_config: RepoConfig, repo_path: Path):
160171 registry_tables : List [Union [FeatureTable , FeatureView ]] = []
161172 registry_tables .extend (registry .list_feature_tables (project = project ))
162173 registry_tables .extend (registry .list_feature_views (project = project ))
174+
175+ registry_entities : List [Entity ] = registry .list_entities (project = project )
176+
163177 infra_provider = get_provider (repo_config , repo_path )
164- infra_provider .teardown_infra (project , tables = registry_tables )
178+ infra_provider .teardown_infra (
179+ project , tables = registry_tables , entities = registry_entities
180+ )
165181
166182
167183def registry_dump (repo_config : RepoConfig , repo_path : Path ):
0 commit comments