From a5f30b15735a25da26e442c67b70d7eb6907f799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sun, 23 Oct 2022 09:02:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=BB=98=E8=AE=A4=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=9A=84=E9=9B=86=E7=BE=A4=E6=B2=A1=E6=9C=89=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E8=8A=82=E7=82=B9=E5=92=8C=E6=9C=8D=E5=8A=A1DNS?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=9A=84Bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/setup/sql_upgrade_ext.go | 33 ++++++++++++++++++++++++++ internal/setup/sql_upgrade_ext_test.go | 29 ++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 internal/setup/sql_upgrade_ext_test.go 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") +}