Fix dynamic DB session access

This commit is contained in:
2026-04-16 18:16:20 +08:00
parent fe09153b73
commit f6c8472354
3 changed files with 39 additions and 20 deletions
+9 -1
View File
@@ -17,8 +17,8 @@ logger = logging.getLogger(__name__)
from sqlalchemy import select
from .. import database
from ..config import settings
from ..database import AsyncSessionLocal
from ..models import SystemJobORM, DinsarResultORM, HazardPointORM, DinsarTaskItemORM, PsTaskItemORM, SARSceneGeoORM, FloodDetectionORM, WaterDetectionORM, GF3ProcessingORM, AiDiagnosisORM
from ..scheduler import scan_data_job
from .data_service import data_service
@@ -80,6 +80,14 @@ JOB_TYPE_REBUILD_PSINSAR_CATALOG = "REBUILD_PSINSAR_CATALOG"
COPY_ALLOWED_STATUSES = {"PENDING", "IN_PROGRESS", "COMPLETED", "FAILED"}
def AsyncSessionLocal():
if database.AsyncSessionLocal is None:
database.init_db()
if database.AsyncSessionLocal is None:
raise RuntimeError("Database session factory is not initialized.")
return database.AsyncSessionLocal()
def _normalize_copy_statuses(raw_statuses: Any) -> List[str]:
if not raw_statuses:
return ["COMPLETED"]