diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_caller_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_caller_service.py index 4a50d9d49..e9bd97708 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_caller_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_caller_service.py @@ -20,13 +20,14 @@ class ProcessCallerService: @staticmethod def clear_cache_for_process_ids(reference_cache_ids: list[int]) -> None: - # query-invoked autoflush happens here - ProcessCallerRelationshipModel.query.filter( - or_( - ProcessCallerRelationshipModel.called_reference_cache_process_id.in_(reference_cache_ids), - ProcessCallerRelationshipModel.calling_reference_cache_process_id.in_(reference_cache_ids), - ) - ).delete() + if len(reference_cache_ids) > 0: + # query-invoked autoflush happens here + ProcessCallerRelationshipModel.query.filter( + or_( + ProcessCallerRelationshipModel.called_reference_cache_process_id.in_(reference_cache_ids), + ProcessCallerRelationshipModel.calling_reference_cache_process_id.in_(reference_cache_ids), + ) + ).delete() @staticmethod def add_caller(calling_process_identifier: str, called_process_identifiers: list[str]) -> None: diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/spec_file_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/spec_file_service.py index 7d61b5e80..60e251500 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/spec_file_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/spec_file_service.py @@ -276,6 +276,10 @@ class SpecFileService(FileSystemService): reference_cache_ids = [] for record in records: reference_cache_ids.append(record.id) + + ProcessCallerService.clear_cache_for_process_ids(reference_cache_ids) + + for record in records: db.session.delete(record) @staticmethod