2023-08-31 21:49:20 +08:00
|
|
|
|
package config
|
|
|
|
|
|
|
2023-12-29 16:48:15 +08:00
|
|
|
|
import (
|
2024-10-20 03:52:23 +00:00
|
|
|
|
"cmp"
|
2023-12-29 16:48:15 +08:00
|
|
|
|
sysapp "mayfly-go/internal/sys/application"
|
2024-01-05 08:55:34 +08:00
|
|
|
|
"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
|
|
|
|
)
|
2023-08-31 21:49:20 +08:00
|
|
|
|
|
|
|
|
|
|
const (
|
2024-03-07 17:26:11 +08:00
|
|
|
|
ConfigKeyDbms string = "DbmsConfig" // dbms相关配置信息
|
2023-12-29 16:48:15 +08:00
|
|
|
|
ConfigKeyDbBackupRestore string = "DbBackupRestore" // 数据库备份
|
|
|
|
|
|
ConfigKeyDbMysqlBin string = "MysqlBin" // mysql可执行文件配置
|
2024-01-05 17:23:29 +08:00
|
|
|
|
ConfigKeyDbMariadbBin string = "MariadbBin" // mariadb可执行文件配置
|
2023-08-31 21:49:20 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2024-03-07 17:26:11 +08:00
|
|
|
|
type Dbms struct {
|
|
|
|
|
|
QuerySqlSave bool // 是否记录查询类sql
|
|
|
|
|
|
MaxResultSet int // 允许sql查询的最大结果集数。注: 0=不限制
|
|
|
|
|
|
SqlExecTl int // sql执行时间限制,超过该时间(单位:秒),执行将被取消
|
2023-08-31 21:49:20 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-03-07 17:26:11 +08:00
|
|
|
|
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)
|
2024-03-07 17:26:11 +08:00
|
|
|
|
return dbmsConf
|
2023-08-31 21:49:20 +08:00
|
|
|
|
}
|
2023-12-29 16:48:15 +08:00
|
|
|
|
|
|
|
|
|
|
type DbBackupRestore struct {
|
2024-10-20 03:52:23 +00:00
|
|
|
|
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)
|
|
|
|
|
|
|
2024-10-20 03:52:23 +00:00
|
|
|
|
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可执行文件路径
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 获取数据库备份配置
|
2024-01-05 08:55:34 +08:00
|
|
|
|
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 == "" {
|
2024-01-05 08:55:34 +08:00
|
|
|
|
path = "./db/mysql/bin"
|
2023-12-29 16:48:15 +08:00
|
|
|
|
}
|
2024-01-05 08:55:34 +08:00
|
|
|
|
mbc.Path = filepath.Join(path)
|
2023-12-29 16:48:15 +08:00
|
|
|
|
|
2024-01-05 08:55:34 +08:00
|
|
|
|
var extName string
|
|
|
|
|
|
if runtime.GOOS == "windows" {
|
|
|
|
|
|
extName = ".exe"
|
|
|
|
|
|
}
|
2023-12-29 16:48:15 +08:00
|
|
|
|
mysqlPath := jm["mysql"]
|
|
|
|
|
|
if mysqlPath == "" {
|
2024-01-05 08:55:34 +08:00
|
|
|
|
mysqlPath = filepath.Join(path, "mysql"+extName)
|
2023-12-29 16:48:15 +08:00
|
|
|
|
}
|
2024-01-05 08:55:34 +08:00
|
|
|
|
mbc.MysqlPath = filepath.Join(mysqlPath)
|
2023-12-29 16:48:15 +08:00
|
|
|
|
|
|
|
|
|
|
mysqldumpPath := jm["mysqldump"]
|
|
|
|
|
|
if mysqldumpPath == "" {
|
2024-01-05 08:55:34 +08:00
|
|
|
|
mysqldumpPath = filepath.Join(path, "mysqldump"+extName)
|
2023-12-29 16:48:15 +08:00
|
|
|
|
}
|
2024-01-05 08:55:34 +08:00
|
|
|
|
mbc.MysqldumpPath = filepath.Join(mysqldumpPath)
|
2023-12-29 16:48:15 +08:00
|
|
|
|
|
|
|
|
|
|
mysqlbinlogPath := jm["mysqlbinlog"]
|
|
|
|
|
|
if mysqlbinlogPath == "" {
|
2024-01-05 08:55:34 +08:00
|
|
|
|
mysqlbinlogPath = filepath.Join(path, "mysqlbinlog"+extName)
|
2023-12-29 16:48:15 +08:00
|
|
|
|
}
|
2024-01-05 08:55:34 +08:00
|
|
|
|
mbc.MysqlbinlogPath = filepath.Join(mysqlbinlogPath)
|
2023-12-29 16:48:15 +08:00
|
|
|
|
|
|
|
|
|
|
return mbc
|
|
|
|
|
|
}
|