From f52d912c72908f5043b0e9351d727340260fe4f6 Mon Sep 17 00:00:00 2001 From: xueyu Date: Fri, 11 Jul 2025 23:42:32 +0800 Subject: [PATCH] fix(dataset): remove extra Session in _update_external_knowledge_binding (#22263) --- api/services/dataset_service.py | 13 +++++-------- .../services/test_dataset_service_update_dataset.py | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/api/services/dataset_service.py b/api/services/dataset_service.py index e42b5ace75..03745ab9f1 100644 --- a/api/services/dataset_service.py +++ b/api/services/dataset_service.py @@ -10,7 +10,6 @@ from typing import Any, Optional from flask_login import current_user from sqlalchemy import func, select -from sqlalchemy.orm import Session from werkzeug.exceptions import NotFound from configs import dify_config @@ -384,13 +383,12 @@ class DatasetService: external_knowledge_id: External knowledge identifier external_knowledge_api_id: External knowledge API identifier """ - with Session(db.engine) as session: - external_knowledge_binding = ( - session.query(ExternalKnowledgeBindings).filter_by(dataset_id=dataset_id).first() - ) + external_knowledge_binding = ( + db.session.query(ExternalKnowledgeBindings).filter_by(dataset_id=dataset_id).first() + ) - if not external_knowledge_binding: - raise ValueError("External knowledge binding not found.") + if not external_knowledge_binding: + raise ValueError("External knowledge binding not found.") # Update binding if values have changed if ( @@ -399,7 +397,6 @@ class DatasetService: ): external_knowledge_binding.external_knowledge_id = external_knowledge_id external_knowledge_binding.external_knowledge_api_id = external_knowledge_api_id - db.session.add(external_knowledge_binding) @staticmethod def _update_internal_dataset(dataset, data, user): diff --git a/api/tests/unit_tests/services/test_dataset_service_update_dataset.py b/api/tests/unit_tests/services/test_dataset_service_update_dataset.py index 87b46f213b..27ad9a60f8 100644 --- a/api/tests/unit_tests/services/test_dataset_service_update_dataset.py +++ b/api/tests/unit_tests/services/test_dataset_service_update_dataset.py @@ -119,7 +119,7 @@ class TestDatasetServiceUpdateDataset: @pytest.fixture def mock_external_provider_dependencies(self): """Mock setup for external provider tests.""" - with patch("services.dataset_service.Session") as mock_session: + with patch("sqlalchemy.orm.Session") as mock_session: from extensions.ext_database import db with patch.object(db.__class__, "engine", new_callable=Mock):