From 3c23375607222ec6d8b2f4c3b4ed62853bd3b37a Mon Sep 17 00:00:00 2001 From: heyszt <270985384@qq.com> Date: Tue, 4 Nov 2025 09:53:22 +0800 Subject: [PATCH] refactor: Use Repository Pattern for Model Layer (#27663) --- api/models/model.py | 8 ++++++-- api/models/workflow.py | 11 ++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/api/models/model.py b/api/models/model.py index bf5f764976..9b7db259dd 100644 --- a/api/models/model.py +++ b/api/models/model.py @@ -1219,9 +1219,13 @@ class Message(Base): @property def workflow_run(self): if self.workflow_run_id: - from .workflow import WorkflowRun + from sqlalchemy.orm import sessionmaker - return db.session.query(WorkflowRun).where(WorkflowRun.id == self.workflow_run_id).first() + from repositories.factory import DifyAPIRepositoryFactory + + session_maker = sessionmaker(bind=db.engine, expire_on_commit=False) + repo = DifyAPIRepositoryFactory.create_api_workflow_run_repository(session_maker) + return repo.get_workflow_run_by_id_without_tenant(run_id=self.workflow_run_id) return None diff --git a/api/models/workflow.py b/api/models/workflow.py index d312b96b39..1982b1bf19 100644 --- a/api/models/workflow.py +++ b/api/models/workflow.py @@ -1058,7 +1058,16 @@ class WorkflowAppLog(Base): @property def workflow_run(self): - return db.session.get(WorkflowRun, self.workflow_run_id) + if self.workflow_run_id: + from sqlalchemy.orm import sessionmaker + + from repositories.factory import DifyAPIRepositoryFactory + + session_maker = sessionmaker(bind=db.engine, expire_on_commit=False) + repo = DifyAPIRepositoryFactory.create_api_workflow_run_repository(session_maker) + return repo.get_workflow_run_by_id_without_tenant(run_id=self.workflow_run_id) + + return None @property def created_by_account(self):