diff --git a/internal/setup/sql_upgrade_ext.go b/internal/setup/sql_upgrade_ext.go index c239e110..3ac83fc8 100644 --- a/internal/setup/sql_upgrade_ext.go +++ b/internal/setup/sql_upgrade_ext.go @@ -6,6 +6,7 @@ package setup import ( "encoding/json" "github.com/TeaOSLab/EdgeAPI/internal/errors" + "github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs" "github.com/iwind/TeaGo/dbs" @@ -141,5 +142,37 @@ func upgradeV0_5_3(db *dbs.DB) error { // v0.5.6 func upgradeV0_5_6(db *dbs.DB) error { + // 修复默认集群的DNS设置 + { + var id = 1 + clusterMap, err := db.FindOne("SELECT dns FROM edgeNodeClusters WHERE id=? AND state=1", id) + if err != nil { + return err + } + if len(clusterMap) > 0 { + var dnsString = clusterMap.GetString("dns") + if len(dnsString) > 0 && dnsString != "null" { + var dnsData = []byte(dnsString) + var dnsConfig = &dnsconfigs.ClusterDNSConfig{ + CNAMEAsDomain: true, + IncludingLnNodes: true, + } + err = json.Unmarshal(dnsData, dnsConfig) + if err == nil && !dnsConfig.NodesAutoSync && !dnsConfig.ServersAutoSync { + dnsConfig.NodesAutoSync = true + dnsConfig.ServersAutoSync = true + dnsConfigJSON, err := json.Marshal(dnsConfig) + if err != nil { + return err + } + _, err = db.Exec("UPDATE edgeNodeClusters SET dns=? WHERE id=?", dnsConfigJSON, id) + if err != nil { + return err + } + } + } + } + } + return nil } diff --git a/internal/setup/sql_upgrade_ext_test.go b/internal/setup/sql_upgrade_ext_test.go new file mode 100644 index 00000000..1d846199 --- /dev/null +++ b/internal/setup/sql_upgrade_ext_test.go @@ -0,0 +1,29 @@ +// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn . +//go:build !plus + +package setup + +import ( + "github.com/iwind/TeaGo/dbs" + "testing" +) + +func TestUpgradeSQLData_v0_5_6(t *testing.T) { + db, err := dbs.NewInstanceFromConfig(&dbs.DBConfig{ + Driver: "mysql", + Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge?charset=utf8mb4&timeout=30s", + Prefix: "edge", + }) + if err != nil { + t.Fatal(err) + } + defer func() { + _ = db.Close() + }() + + err = upgradeV0_5_6(db) + if err != nil { + t.Fatal(err) + } + t.Log("ok") +}