Files
mayfly-go/server/internal/db/config/config.go

99 lines
2.6 KiB
Go
Raw Normal View History

package config
2023-12-29 16:48:15 +08:00
import (
"cmp"
2023-12-29 16:48:15 +08:00
sysapp "mayfly-go/internal/sys/application"
"path/filepath"
"runtime"
2024-03-21 17:15:52 +08:00
2025-06-27 12:17:45 +08:00
"github.com/spf13/cast"
2023-12-29 16:48:15 +08:00
)
const (
ConfigKeyDbms string = "DbmsConfig" // dbms相关配置信息
2023-12-29 16:48:15 +08:00
ConfigKeyDbBackupRestore string = "DbBackupRestore" // 数据库备份
ConfigKeyDbMysqlBin string = "MysqlBin" // mysql可执行文件配置
ConfigKeyDbMariadbBin string = "MariadbBin" // mariadb可执行文件配置
)
type Dbms struct {
QuerySqlSave bool // 是否记录查询类sql
MaxResultSet int // 允许sql查询的最大结果集数。注: 0=不限制
SqlExecTl int // sql执行时间限制超过该时间单位执行将被取消
}
func GetDbms() *Dbms {
c := sysapp.GetConfigApp().GetConfig(ConfigKeyDbms)
jm := c.GetJsonMap()
dbmsConf := new(Dbms)
dbmsConf.QuerySqlSave = c.ConvBool(jm["querySqlSave"], false)
2024-03-21 17:15:52 +08:00
dbmsConf.MaxResultSet = cast.ToInt(jm["maxResultSet"])
2025-06-27 12:17:45 +08:00
dbmsConf.SqlExecTl = cmp.Or(cast.ToInt(jm["sqlExecTl"]), 60)
return dbmsConf
}
2023-12-29 16:48:15 +08:00
type DbBackupRestore struct {
BackupPath string // 备份文件路径呢
TransferPath string // 数据库迁移文件存储路径
2023-12-29 16:48:15 +08:00
}
// 获取数据库备份配置
func GetDbBackupRestore() *DbBackupRestore {
c := sysapp.GetConfigApp().GetConfig(ConfigKeyDbBackupRestore)
jm := c.GetJsonMap()
dbrc := new(DbBackupRestore)
dbrc.BackupPath = filepath.Join(cmp.Or(jm["backupPath"], "./db/backup"))
dbrc.TransferPath = filepath.Join(cmp.Or(jm["transferPath"], "./db/transfer"))
2023-12-29 16:48:15 +08:00
return dbrc
}
// mysql客户端可执行文件配置
type MysqlBin struct {
Path string // 可执行文件路径
MysqlPath string // mysql可执行文件路径
MysqldumpPath string // mysqldump可执行文件路径
MysqlbinlogPath string // mysqlbinlog可执行文件路径
}
// 获取数据库备份配置
func GetMysqlBin(configKey string) *MysqlBin {
c := sysapp.GetConfigApp().GetConfig(configKey)
2023-12-29 16:48:15 +08:00
jm := c.GetJsonMap()
mbc := new(MysqlBin)
path := jm["path"]
if path == "" {
path = "./db/mysql/bin"
2023-12-29 16:48:15 +08:00
}
mbc.Path = filepath.Join(path)
2023-12-29 16:48:15 +08:00
var extName string
if runtime.GOOS == "windows" {
extName = ".exe"
}
2023-12-29 16:48:15 +08:00
mysqlPath := jm["mysql"]
if mysqlPath == "" {
mysqlPath = filepath.Join(path, "mysql"+extName)
2023-12-29 16:48:15 +08:00
}
mbc.MysqlPath = filepath.Join(mysqlPath)
2023-12-29 16:48:15 +08:00
mysqldumpPath := jm["mysqldump"]
if mysqldumpPath == "" {
mysqldumpPath = filepath.Join(path, "mysqldump"+extName)
2023-12-29 16:48:15 +08:00
}
mbc.MysqldumpPath = filepath.Join(mysqldumpPath)
2023-12-29 16:48:15 +08:00
mysqlbinlogPath := jm["mysqlbinlog"]
if mysqlbinlogPath == "" {
mysqlbinlogPath = filepath.Join(path, "mysqlbinlog"+extName)
2023-12-29 16:48:15 +08:00
}
mbc.MysqlbinlogPath = filepath.Join(mysqlbinlogPath)
2023-12-29 16:48:15 +08:00
return mbc
}