|
|
|
@@ -5,6 +5,7 @@ from typing import Any, Optional |
|
|
|
|
|
|
|
from pydantic import BaseModel |
|
|
|
from sqlalchemy import update |
|
|
|
from sqlalchemy.orm import Session |
|
|
|
|
|
|
|
from configs import dify_config |
|
|
|
from core.app.entities.app_invoke_entities import AgentChatAppGenerateEntity, ChatAppGenerateEntity |
|
|
|
@@ -183,7 +184,7 @@ def _execute_provider_updates(updates_to_perform: list[_ProviderUpdateOperation] |
|
|
|
|
|
|
|
# Use SQLAlchemy's context manager for transaction management |
|
|
|
# This automatically handles commit/rollback |
|
|
|
with db.session.begin(): |
|
|
|
with Session(db.engine) as session: |
|
|
|
# Use a single transaction for all updates |
|
|
|
for update_operation in updates_to_perform: |
|
|
|
filters = update_operation.filters |
|
|
|
@@ -214,7 +215,7 @@ def _execute_provider_updates(updates_to_perform: list[_ProviderUpdateOperation] |
|
|
|
|
|
|
|
# Build and execute the update statement |
|
|
|
stmt = update(Provider).where(*where_conditions).values(**update_values) |
|
|
|
result = db.session.execute(stmt) |
|
|
|
result = session.execute(stmt) |
|
|
|
rows_affected = result.rowcount |
|
|
|
|
|
|
|
logger.debug( |