mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-22 08:53:46 +08:00
✨ feat(clickhouse): 支持自定义连接兼容 JDBC DSN
- 解析 ClickHouse 与 JDBC 风格 DSN 并映射协议、TLS、认证及数据库参数 - 统一连接缓存、DDL、数据同步与导出 driver-agent 生命周期 - 保持 DSN 加密存储并补充前后端回归测试和多语言提示 Fixes #383
This commit is contained in:
@@ -56,28 +56,26 @@ func (a *App) resolveDataSyncEndpointConfig(raw connection.ConnectionConfig, sel
|
||||
return resolved, selectedDatabase, err
|
||||
}
|
||||
|
||||
if !strings.EqualFold(strings.TrimSpace(raw.Type), "oracle") || strings.TrimSpace(raw.ID) == "" {
|
||||
return resolved, strings.TrimSpace(selectedDatabase), nil
|
||||
}
|
||||
|
||||
repo := newSavedConnectionRepository(a.configDir, a.secretStore)
|
||||
view, findErr := repo.Find(raw.ID)
|
||||
if findErr != nil {
|
||||
return resolved, strings.TrimSpace(selectedDatabase), nil
|
||||
}
|
||||
|
||||
savedServiceName := strings.TrimSpace(view.Config.Database)
|
||||
if savedServiceName == "" {
|
||||
return resolved, strings.TrimSpace(selectedDatabase), nil
|
||||
}
|
||||
|
||||
selected := strings.TrimSpace(selectedDatabase)
|
||||
incomingDatabase := strings.TrimSpace(raw.Database)
|
||||
if selected == "" && incomingDatabase != "" && !strings.EqualFold(incomingDatabase, savedServiceName) {
|
||||
selected = incomingDatabase
|
||||
if strings.EqualFold(strings.TrimSpace(raw.Type), "oracle") && strings.TrimSpace(raw.ID) != "" {
|
||||
repo := newSavedConnectionRepository(a.configDir, a.secretStore)
|
||||
if view, findErr := repo.Find(raw.ID); findErr == nil {
|
||||
savedServiceName := strings.TrimSpace(view.Config.Database)
|
||||
if savedServiceName != "" {
|
||||
incomingDatabase := strings.TrimSpace(raw.Database)
|
||||
if selected == "" && incomingDatabase != "" && !strings.EqualFold(incomingDatabase, savedServiceName) {
|
||||
selected = incomingDatabase
|
||||
}
|
||||
resolved.Database = savedServiceName
|
||||
}
|
||||
}
|
||||
}
|
||||
resolved.Database = savedServiceName
|
||||
return resolved, selected, nil
|
||||
|
||||
effectiveConfig, err := a.resolveCustomClickHouseRuntimeConfig(resolved)
|
||||
if err != nil {
|
||||
return resolved, selected, err
|
||||
}
|
||||
return effectiveConfig, selected, nil
|
||||
}
|
||||
|
||||
// DataSync executes a data synchronization task
|
||||
|
||||
Reference in New Issue
Block a user