mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-02 22:10:26 +08:00
修复4位版本号导致无法自动升级SQL的问题
This commit is contained in:
@@ -21,7 +21,4 @@ const (
|
||||
// 其他节点版本号,用来检测是否有需要升级的节点
|
||||
|
||||
NodeVersion = "1.3.4.2"
|
||||
|
||||
// SQLVersion SQL版本号
|
||||
SQLVersion = "12"
|
||||
)
|
||||
|
||||
@@ -25,7 +25,6 @@ import (
|
||||
"github.com/iwind/TeaGo/logs"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
stringutil "github.com/iwind/TeaGo/utils/string"
|
||||
"github.com/iwind/gosock/pkg/gosock"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/credentials"
|
||||
@@ -381,7 +380,7 @@ func (this *APINode) autoUpgrade() error {
|
||||
if one != nil {
|
||||
// 如果是同样的版本,则直接认为是最新版本
|
||||
var version = one.GetString("version")
|
||||
if stringutil.VersionCompare(version, setup.ComposeSQLVersion()) >= 0 {
|
||||
if setup.CompareVersion(version, setup.ComposeSQLVersion()) >= 0 {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@ import (
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
"github.com/iwind/TeaGo/rands"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
stringutil "github.com/iwind/TeaGo/utils/string"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
@@ -116,10 +115,10 @@ func UpgradeSQLData(db *dbs.DB) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
versionString := types.String(version)
|
||||
var versionString = types.String(version)
|
||||
if len(versionString) > 0 {
|
||||
for _, f := range upgradeFuncs {
|
||||
if stringutil.VersionCompare(versionString, f.version) >= 0 {
|
||||
if CompareVersion(versionString, f.version) >= 0 {
|
||||
continue
|
||||
}
|
||||
err = f.f(db)
|
||||
|
||||
@@ -4,17 +4,31 @@ package setup
|
||||
|
||||
import (
|
||||
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
stringutil "github.com/iwind/TeaGo/utils/string"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// ComposeSQLVersion 组合SQL的版本号
|
||||
func ComposeSQLVersion() string {
|
||||
var version = teaconst.Version
|
||||
if len(teaconst.SQLVersion) == 0 {
|
||||
return version
|
||||
return teaconst.Version
|
||||
}
|
||||
|
||||
// CompareVersion 对比版本
|
||||
func CompareVersion(version1 string, version2 string) int8 {
|
||||
if len(version1) == 0 || len(version2) == 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
if strings.Count(version, ".") <= 2 {
|
||||
return version + "." + teaconst.SQLVersion
|
||||
return stringutil.VersionCompare(fixVersion(version1), fixVersion(version2))
|
||||
}
|
||||
|
||||
func fixVersion(version string) string {
|
||||
var pieces = strings.Split(version, ".")
|
||||
var lastPiece = types.Int(pieces[len(pieces)-1])
|
||||
if lastPiece > 10 {
|
||||
// 这个是以前使用的SQL版本号,我们给去掉
|
||||
version = strings.Join(pieces[:len(pieces)-1], ".")
|
||||
}
|
||||
return version
|
||||
}
|
||||
|
||||
@@ -4,9 +4,20 @@ package setup_test
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/setup"
|
||||
"github.com/iwind/TeaGo/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestComposeSQLVersion(t *testing.T) {
|
||||
t.Log(setup.ComposeSQLVersion())
|
||||
}
|
||||
|
||||
func TestCompareVersion(t *testing.T) {
|
||||
var a = assert.NewAssertion(t)
|
||||
a.IsTrue(setup.CompareVersion("1.3.4", "1.3.4") == 0)
|
||||
a.IsTrue(setup.CompareVersion("1.3.4", "1.3.3") > 0)
|
||||
a.IsTrue(setup.CompareVersion("1.3.4", "1.3.5") < 0)
|
||||
a.IsTrue(setup.CompareVersion("1.3.4.3", "1.3.4.12") > 0) // because 12 > 10
|
||||
a.IsTrue(setup.CompareVersion("1.3.4.3", "1.3.4.2") > 0)
|
||||
a.IsTrue(setup.CompareVersion("1.3.4.3", "1.3.4.4") < 0)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user