feat(transfer): add per-task operation timeout

This commit is contained in:
t8y2
2026-10-15 12:39:48 +08:00
parent 5d341d3afd
commit 3af7e2c55d
15 changed files with 250 additions and 34 deletions
+3
View File
@@ -83,9 +83,12 @@ description: 在不同连接、数据库、Schema 或数据库引擎之间批量
| Upsert | 目标路径支持且能确定键时,按键更新或插入 |
| 表名大小写 | 保持原样、转小写或转大写;转换后的目标名必须互不冲突 |
| 批大小 | 控制分页读取和分批写入,默认 1000,可在界面中调整 |
| 操作超时 | 默认分别继承源连接和目标连接的查询超时;也可为当前传输设置 `0`–`3600` 秒,`0` 表示不限制 |
如果关闭“创建目标表”,目标表必须已经存在且字段可兼容。即使开启建表,跨引擎 DDL 也可能因目标数据库不支持某些类型、默认值、约束或对象而需要人工调整。
操作超时不限制整个传输任务的总时长。支持增量结果流的驱动会把它作为“无进展等待时间”,每次收到数据都会重新计时;只能一次性返回结果的驱动则按单次数据库操作的总耗时计算。自定义值只作用于当前传输及其保存任务,不会修改连接或查询编辑器的超时设置。
<Callout type="warn">**重建结构和数据**会替换现有目标表及其索引、触发器、约束、注释和对象权限为源结构。原表会先被重命名为备份表,传输成功后删除。任一步骤失败则保留备份表,可手工恢复。</Callout>
## 结构 SQL 预览
+3
View File
@@ -83,9 +83,12 @@ This entry point lists target drivers with implemented transactional writes. It
| Upsert | Updates or inserts by key when the target path supports it and a usable key is available |
| Target table name case | Preserve, lowercase, or uppercase; transformed target names must remain unique |
| Batch size | Controls paged reads and batched writes; the UI default is 1000 |
| Operation timeout | Inherits the source and target connection query timeouts by default; override this transfer with `0`–`3600` seconds, where `0` means unlimited |
If table creation is disabled, compatible target tables must already exist. Even with table creation enabled, cross-engine DDL may require manual changes when the target does not support a source type, default, constraint, or object.
The operation timeout does not cap the overall transfer duration. Drivers with incremental result streams treat it as an inactivity window that resets whenever data arrives; drivers that return a result all at once apply it to the total duration of each database operation. A custom value affects only this transfer and its saved task, not the connection or query-editor timeout settings.
<Callout type="warn">**Rebuild structure and data** replaces existing target tables and their indexes, triggers, constraints, comments, and object permissions with source structure. The original table is renamed to a backup first, then dropped after a successful transfer. If any step fails, the backup table is retained and can be manually restored.</Callout>
## Structure SQL Preview