mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 06:40:26 +08:00
修复自动生成的用户没有绑定集群、用户名不规范的问题
This commit is contained in:
@@ -17,6 +17,7 @@ import (
|
||||
"github.com/iwind/TeaGo/rands"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
stringutil "github.com/iwind/TeaGo/utils/string"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type upgradeVersion struct {
|
||||
@@ -91,6 +92,9 @@ var upgradeFuncs = []*upgradeVersion{
|
||||
{
|
||||
"0.5.8", upgradeV0_5_8,
|
||||
},
|
||||
{
|
||||
"1.2.1", upgradeV1_2_1,
|
||||
},
|
||||
}
|
||||
|
||||
// UpgradeSQLData 升级SQL数据
|
||||
@@ -719,3 +723,32 @@ func upgradeV0_4_11(db *dbs.DB) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// v1.2.1
|
||||
func upgradeV1_2_1(db *dbs.DB) error {
|
||||
// upgrade generated USER-xxx in old versions
|
||||
ones, _, err := db.FindOnes("SELECT id, username, clusterId FROM edgeUsers WHERE username LIKE 'USER-%'")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, one := range ones {
|
||||
var userId = one.GetInt64("id")
|
||||
var clusterId = one.GetInt64("clusterId")
|
||||
var username = one.GetString("username")
|
||||
if clusterId <= 0 {
|
||||
defaultClusterIdValue, err := db.FindCol(0, "SELECT id FROM edgeNodeClusters WHERE state=1 ORDER BY id ASC LIMIT 1")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
var defaultClusterId = types.Int64(defaultClusterIdValue)
|
||||
if defaultClusterId > 0 {
|
||||
_, err = db.Exec("UPDATE edgeUsers SET username=?, clusterId=? WHERE id=?", strings.ReplaceAll(username, "-", "_"), defaultClusterId, userId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -252,3 +252,23 @@ func TestUpgradeSQLData_v0_5_3(t *testing.T) {
|
||||
t.Log("ok")
|
||||
}
|
||||
|
||||
func TestUpgradeSQLData_v1_2_1(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 = upgradeV1_2_1(db)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("ok")
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user