mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-06-26 08:21:50 +08:00
- 数据同步:新增表结构比对、数据比对两个独立工具入口 - 比对模式:为 DataSyncModal 增加只读入口展示与模式化文案 - OceanBase:Oracle 租户改用 OB Oracle 专用 MySQL-wire 连接路径 - 连接表单:允许 OceanBase Oracle Service Name 留空,仅 TNS 场景需要填写 - 驱动提示:revision 不匹配提示收敛到驱动管理,不再在普通数据源入口弹出 - 测试覆盖:补充数据比对入口、OceanBase Oracle、driver-agent 提示边界测试
44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
//go:build oceanbase_live
|
|
|
|
package db
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
"testing"
|
|
|
|
"GoNavi-Wails/internal/connection"
|
|
)
|
|
|
|
func TestOceanBaseOracleLive(t *testing.T) {
|
|
port, err := strconv.Atoi(os.Getenv("GONAVI_OB_PORT"))
|
|
if err != nil {
|
|
t.Fatalf("invalid GONAVI_OB_PORT: %v", err)
|
|
}
|
|
|
|
ob := &OceanBaseDB{}
|
|
cfg := connection.ConnectionConfig{
|
|
Type: "oceanbase",
|
|
Host: os.Getenv("GONAVI_OB_HOST"),
|
|
Port: port,
|
|
User: os.Getenv("GONAVI_OB_USER"),
|
|
Password: os.Getenv("GONAVI_OB_PASSWORD"),
|
|
Database: os.Getenv("GONAVI_OB_DATABASE"),
|
|
ConnectionParams: os.Getenv("GONAVI_OB_PARAMS"),
|
|
OceanBaseProtocol: "oracle",
|
|
Timeout: 10,
|
|
}
|
|
if err := ob.Connect(cfg); err != nil {
|
|
t.Fatalf("connect failed: %v", err)
|
|
}
|
|
defer ob.Close()
|
|
|
|
rows, fields, err := ob.Query("select 1 from dual")
|
|
if err != nil {
|
|
t.Fatalf("query failed: %v", err)
|
|
}
|
|
if len(fields) != 1 || len(rows) != 1 {
|
|
t.Fatalf("unexpected result fields=%v rows=%v", fields, rows)
|
|
}
|
|
}
|