feat(sync): 新增 SQL 结果集数据同步能力

- 同步引擎新增查询结果集同步分支,支持单目标表差异分析、预览与执行
- 数据同步工作台增加 SQL 结果集模式,并补充目标表与查询校验
- 补充后端同步链路与前端请求构造回归测试,并更新 backlog 记录

Fixes #321
This commit is contained in:
Syngnat
2026-04-17 16:31:55 +08:00
parent 9dc58acb39
commit 651eec1617
9 changed files with 957 additions and 46 deletions

View File

@@ -15,6 +15,7 @@ type SyncConfig struct {
SourceConfig connection.ConnectionConfig `json:"sourceConfig"`
TargetConfig connection.ConnectionConfig `json:"targetConfig"`
Tables []string `json:"tables"`
SourceQuery string `json:"sourceQuery,omitempty"`
Content string `json:"content,omitempty"` // "data", "schema", "both"
Mode string `json:"mode"` // "insert_update", "insert_only", "full_overwrite"
JobID string `json:"jobId,omitempty"`
@@ -54,6 +55,9 @@ func (s *SyncEngine) RunSync(config SyncConfig) SyncResult {
if isMongoToRedisKeyspacePair(config) {
return s.runMongoToRedisSync(config, result)
}
if hasSourceQuery(config) {
return s.runSourceQuerySync(config)
}
totalTables := len(config.Tables)
s.progress(config.JobID, 0, totalTables, "", "开始同步")