Просмотр исходного кода

fix(旧输入读取): 为上传 topic 选择 runtime 会话

LegacySqlAlchemyInputReader 接受独立 uploaded_sessions。execution_id=0 时委托 runtime 会话读取 origin=upload 的 build/topic/point/item,普通历史 execution 继续走只读 input 数据库。
SamLee 20 часов назад
Родитель
Сommit
24c6c35466
1 измененных файлов с 11 добавлено и 0 удалено
  1. 11 0
      script_build_host/src/script_build_host/repositories/legacy_input.py

+ 11 - 0
script_build_host/src/script_build_host/repositories/legacy_input.py

@@ -87,13 +87,24 @@ class LegacySqlAlchemyInputReader:
         sessions: async_sessionmaker[AsyncSession],
         *,
         include_raw_upload: bool = False,
+        uploaded_sessions: async_sessionmaker[AsyncSession] | None = None,
     ) -> None:
         self._sessions = sessions
         self._include_raw_upload = include_raw_upload
+        self._uploaded_sessions = uploaded_sessions
 
     async def read_topic_graph(
         self, *, execution_id: int, topic_build_id: int, topic_id: int
     ) -> dict[str, Any]:
+        if execution_id == 0 and self._uploaded_sessions is not None:
+            return await LegacySqlAlchemyInputReader(
+                self._uploaded_sessions,
+                include_raw_upload=self._include_raw_upload,
+            ).read_topic_graph(
+                execution_id=execution_id,
+                topic_build_id=topic_build_id,
+                topic_id=topic_id,
+            )
         async with self._sessions() as session:
             execution = None
             if execution_id != 0: