mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-12 06:10:26 +08:00
[SSL证书]实现对ACME任务的增删改查
This commit is contained in:
67
internal/setup/sql_data.go
Normal file
67
internal/setup/sql_data.go
Normal file
@@ -0,0 +1,67 @@
|
||||
package setup
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/errors"
|
||||
"github.com/iwind/TeaGo/dbs"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
stringutil "github.com/iwind/TeaGo/utils/string"
|
||||
)
|
||||
|
||||
type upgradeVersion struct {
|
||||
version string
|
||||
f func(db *dbs.DB) error
|
||||
}
|
||||
|
||||
var upgradeFuncs = []*upgradeVersion{
|
||||
{
|
||||
"0.0.3", upgradeV0_0_3,
|
||||
},
|
||||
}
|
||||
|
||||
// 升级SQL数据
|
||||
func UpgradeSQLData(db *dbs.DB) error {
|
||||
version, err := db.FindCol(0, "SELECT version FROM edgeVersions")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
versionString := types.String(version)
|
||||
if len(versionString) > 0 {
|
||||
for _, f := range upgradeFuncs {
|
||||
if stringutil.VersionCompare(versionString, f.version) >= 0 {
|
||||
continue
|
||||
}
|
||||
err = f.f(db)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// v0.0.3
|
||||
func upgradeV0_0_3(db *dbs.DB) error {
|
||||
// 获取第一个管理员
|
||||
adminIdCol, err := db.FindCol(0, "SELECT id FROM edgeAdmins ORDER BY id ASC LIMIT 1")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
adminId := types.Int64(adminIdCol)
|
||||
if adminId <= 0 {
|
||||
return errors.New("'edgeAdmins' table should not be empty")
|
||||
}
|
||||
|
||||
// 升级edgeDNSProviders
|
||||
_, err = db.Exec("UPDATE edgeDNSProviders SET adminId=? WHERE adminId=0 AND userId=0", adminId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 升级edgeSSLCerts
|
||||
_, err = db.Exec("UPDATE edgeSSLCerts SET adminId=? WHERE adminId=0 AND userId=0", adminId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user