diff --git a/api/repositories/sqlalchemy_api_workflow_node_execution_repository.py b/api/repositories/sqlalchemy_api_workflow_node_execution_repository.py index f184df31d5..dc0c610f4f 100644 --- a/api/repositories/sqlalchemy_api_workflow_node_execution_repository.py +++ b/api/repositories/sqlalchemy_api_workflow_node_execution_repository.py @@ -355,31 +355,13 @@ class DifyAPISQLAlchemyWorkflowNodeExecutionRepository(DifyAPIWorkflowNodeExecut @staticmethod def get_by_run( session: Session, - run: RunContext, + run_id: str, ) -> Sequence[WorkflowNodeExecutionModel]: """ - Fetch node executions for a run using the composite index on - (tenant_id, app_id, workflow_id, triggered_from, workflow_run_id). + Fetch node executions for a run using workflow_run_id. """ - tuple_values = [ - ( - run["tenant_id"], - run["app_id"], - run["workflow_id"], - DifyAPISQLAlchemyWorkflowNodeExecutionRepository._map_run_triggered_from_to_node_triggered_from( - run["triggered_from"] - ), - run["run_id"], - ) - ] stmt = select(WorkflowNodeExecutionModel).where( - tuple_( - WorkflowNodeExecutionModel.tenant_id, - WorkflowNodeExecutionModel.app_id, - WorkflowNodeExecutionModel.workflow_id, - WorkflowNodeExecutionModel.triggered_from, - WorkflowNodeExecutionModel.workflow_run_id, - ).in_(tuple_values) + WorkflowNodeExecutionModel.workflow_run_id == run_id ) return list(session.scalars(stmt)) diff --git a/api/services/retention/workflow_run/archive_paid_plan_workflow_run.py b/api/services/retention/workflow_run/archive_paid_plan_workflow_run.py index ab605d6ab1..243e93bf43 100644 --- a/api/services/retention/workflow_run/archive_paid_plan_workflow_run.py +++ b/api/services/retention/workflow_run/archive_paid_plan_workflow_run.py @@ -431,14 +431,7 @@ class WorkflowRunArchiver: repo = self._get_workflow_run_repo() app_logs = repo.get_app_logs_by_run_id(session, run.id) table_data["workflow_app_logs"] = [self._row_to_dict(row) for row in app_logs] - run_context: DifyAPISQLAlchemyWorkflowNodeExecutionRepository.RunContext = { - "run_id": run.id, - "tenant_id": run.tenant_id, - "app_id": run.app_id, - "workflow_id": run.workflow_id, - "triggered_from": run.triggered_from, - } - node_exec_records = DifyAPISQLAlchemyWorkflowNodeExecutionRepository.get_by_run(session, run_context) + node_exec_records = DifyAPISQLAlchemyWorkflowNodeExecutionRepository.get_by_run(session, run.id) node_exec_ids = [record.id for record in node_exec_records] offload_records = DifyAPISQLAlchemyWorkflowNodeExecutionRepository.get_offloads_by_execution_ids( session,