fix: 远程→本地迁移用旧环境远程配置(而非空的新data)
This commit is contained in:
parent
7e0a3d1d93
commit
17b90c8c12
@ -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"):
|
if not remote_config.get("remote_dir"):
|
||||||
return {"ok": False, "error": "远程模式需要 remote_dir"}
|
return {"ok": False, "error": "远程模式需要 remote_dir"}
|
||||||
|
|
||||||
# 查旧环境(用于判断是否需要迁移)
|
# 查旧环境(完整记录,迁移时需要用旧的远程配置)
|
||||||
old_recs = await sor.sqlExe(
|
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})
|
{"t": owner_type, "o": owner_id})
|
||||||
old_mode = getattr(old_recs[0], "mode", "local") if old_recs else "local"
|
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
|
# upsert
|
||||||
from appPublic.uniqueID import getID
|
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 时)
|
# 触发迁移(模式切换 + 提供了 account_name 时)
|
||||||
migrated = {"migrated": False}
|
migrated = {"migrated": False}
|
||||||
if account_name and old_mode != mode:
|
if account_name and old_mode != mode:
|
||||||
env = _row_to_env_from_dict(data)
|
# remote → local 用旧的远程配置;local → remote 用新的远程配置
|
||||||
migrated = await migrate_work_dir(account_name, old_mode, mode, env)
|
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}
|
return {"ok": True, "mode": mode, "old_mode": old_mode, "migration": migrated}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user