From 17b90c8c126c421f75731796234ff820c305087c Mon Sep 17 00:00:00 2001 From: ymq Date: Fri, 14 Aug 2026 11:16:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=BF=9C=E7=A8=8B=E2=86=92=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E8=BF=81=E7=A7=BB=E7=94=A8=E6=97=A7=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E8=BF=9C=E7=A8=8B=E9=85=8D=E7=BD=AE=EF=BC=88=E8=80=8C=E9=9D=9E?= =?UTF-8?q?=E7=A9=BA=E7=9A=84=E6=96=B0data=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pipeline_service/work_env.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pipeline_service/work_env.py b/pipeline_service/work_env.py index 0047114..4be5c56 100644 --- a/pipeline_service/work_env.py +++ b/pipeline_service/work_env.py @@ -158,11 +158,12 @@ async def set_work_env(sor, owner_type: str, owner_id: str, mode: str, if not remote_config.get("remote_dir"): return {"ok": False, "error": "远程模式需要 remote_dir"} - # 查旧环境(用于判断是否需要迁移) + # 查旧环境(完整记录,迁移时需要用旧的远程配置) old_recs = await sor.sqlExe( - "SELECT mode FROM sd_work_envs WHERE owner_type=${t}$ AND owner_id=${o}$ LIMIT 1", + "SELECT * FROM sd_work_envs WHERE owner_type=${t}$ AND owner_id=${o}$ LIMIT 1", {"t": owner_type, "o": owner_id}) old_mode = getattr(old_recs[0], "mode", "local") if old_recs else "local" + old_env = _row_to_env(old_recs[0]) if old_recs else None # upsert from appPublic.uniqueID import getID @@ -191,8 +192,12 @@ async def set_work_env(sor, owner_type: str, owner_id: str, mode: str, # 触发迁移(模式切换 + 提供了 account_name 时) migrated = {"migrated": False} if account_name and old_mode != mode: - env = _row_to_env_from_dict(data) - migrated = await migrate_work_dir(account_name, old_mode, mode, env) + # remote → local 用旧的远程配置;local → remote 用新的远程配置 + if old_mode == "remote" and mode == "local": + migrate_env = old_env or _row_to_env_from_dict(data) + else: + migrate_env = _row_to_env_from_dict(data) + migrated = await migrate_work_dir(account_name, old_mode, mode, migrate_env) return {"ok": True, "mode": mode, "old_mode": old_mode, "migration": migrated}