diff --git a/api/repositories/sqlalchemy_api_workflow_run_repository.py b/api/repositories/sqlalchemy_api_workflow_run_repository.py index 4b031f1c9b..95de006d98 100644 --- a/api/repositories/sqlalchemy_api_workflow_run_repository.py +++ b/api/repositories/sqlalchemy_api_workflow_run_repository.py @@ -385,17 +385,17 @@ class DifyAPISQLAlchemyWorkflowRunRepository(APIWorkflowRunRepository): WorkflowNodeExecutionOffload.node_execution_id.in_(node_execution_ids) ) ) - offloads_deleted = offloads_result.rowcount or 0 + offloads_deleted = cast(CursorResult, offloads_result).rowcount or 0 node_executions_deleted = 0 if node_execution_ids: node_executions_result = session.execute( delete(WorkflowNodeExecutionModel).where(WorkflowNodeExecutionModel.id.in_(node_execution_ids)) ) - node_executions_deleted = node_executions_result.rowcount or 0 + node_executions_deleted = cast(CursorResult, node_executions_result).rowcount or 0 app_logs_result = session.execute(delete(WorkflowAppLog).where(WorkflowAppLog.workflow_run_id.in_(run_ids))) - app_logs_deleted = app_logs_result.rowcount or 0 + app_logs_deleted = cast(CursorResult, app_logs_result).rowcount or 0 pause_ids = session.scalars( select(WorkflowPauseModel.id).where(WorkflowPauseModel.workflow_run_id.in_(run_ids)) @@ -407,14 +407,14 @@ class DifyAPISQLAlchemyWorkflowRunRepository(APIWorkflowRunRepository): pause_reasons_result = session.execute( delete(WorkflowPauseReason).where(WorkflowPauseReason.pause_id.in_(pause_ids)) ) - pause_reasons_deleted = pause_reasons_result.rowcount or 0 + pause_reasons_deleted = cast(CursorResult, pause_reasons_result).rowcount or 0 pauses_result = session.execute(delete(WorkflowPauseModel).where(WorkflowPauseModel.id.in_(pause_ids))) - pauses_deleted = pauses_result.rowcount or 0 + pauses_deleted = cast(CursorResult, pauses_result).rowcount or 0 trigger_logs_deleted = SQLAlchemyWorkflowTriggerLogRepository(session).delete_by_run_ids(run_ids) runs_result = session.execute(delete(WorkflowRun).where(WorkflowRun.id.in_(run_ids))) - runs_deleted = runs_result.rowcount or 0 + runs_deleted = cast(CursorResult, runs_result).rowcount or 0 session.commit() diff --git a/api/repositories/sqlalchemy_workflow_trigger_log_repository.py b/api/repositories/sqlalchemy_workflow_trigger_log_repository.py index 6703a83c46..d01c35e5ab 100644 --- a/api/repositories/sqlalchemy_workflow_trigger_log_repository.py +++ b/api/repositories/sqlalchemy_workflow_trigger_log_repository.py @@ -4,8 +4,10 @@ SQLAlchemy implementation of WorkflowTriggerLogRepository. from collections.abc import Sequence from datetime import UTC, datetime, timedelta +from typing import cast from sqlalchemy import and_, delete, select +from sqlalchemy.engine import CursorResult from sqlalchemy.orm import Session from models.enums import WorkflowTriggerStatus @@ -99,4 +101,4 @@ class SQLAlchemyWorkflowTriggerLogRepository(WorkflowTriggerLogRepository): return 0 result = self.session.execute(delete(WorkflowTriggerLog).where(WorkflowTriggerLog.workflow_run_id.in_(run_ids))) - return result.rowcount or 0 + return cast(CursorResult, result).rowcount or 0