Files
mayfly-go/server/internal/db/config/config.go
2024-03-21 17:15:52 +08:00

100 lines
2.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package config
import (
sysapp "mayfly-go/internal/sys/application"
"path/filepath"
"runtime"
"github.com/may-fly/cast"
)
const (
ConfigKeyDbms string = "DbmsConfig" // dbms相关配置信息
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)
dbmsConf.MaxResultSet = cast.ToInt(jm["maxResultSet"])
dbmsConf.SqlExecTl = cast.ToIntD(jm["sqlExecTl"], 60)
return dbmsConf
}
type DbBackupRestore struct {
BackupPath string // 备份文件路径呢
}
// 获取数据库备份配置
func GetDbBackupRestore() *DbBackupRestore {
c := sysapp.GetConfigApp().GetConfig(ConfigKeyDbBackupRestore)
jm := c.GetJsonMap()
dbrc := new(DbBackupRestore)
backupPath := jm["backupPath"]
if backupPath == "" {
backupPath = "./db/backup"
}
dbrc.BackupPath = filepath.Join(backupPath)
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)
jm := c.GetJsonMap()
mbc := new(MysqlBin)
path := jm["path"]
if path == "" {
path = "./db/mysql/bin"
}
mbc.Path = filepath.Join(path)
var extName string
if runtime.GOOS == "windows" {
extName = ".exe"
}
mysqlPath := jm["mysql"]
if mysqlPath == "" {
mysqlPath = filepath.Join(path, "mysql"+extName)
}
mbc.MysqlPath = filepath.Join(mysqlPath)
mysqldumpPath := jm["mysqldump"]
if mysqldumpPath == "" {
mysqldumpPath = filepath.Join(path, "mysqldump"+extName)
}
mbc.MysqldumpPath = filepath.Join(mysqldumpPath)
mysqlbinlogPath := jm["mysqlbinlog"]
if mysqlbinlogPath == "" {
mysqlbinlogPath = filepath.Join(path, "mysqlbinlog"+extName)
}
mbc.MysqlbinlogPath = filepath.Join(mysqlbinlogPath)
return mbc
}