Smail/server/db/init.go
jinnrry cc4aa851bc v2.4.4 (#6)
pop3收件箱出现已删除邮件bug
从sqlx切换到xorm
第三方客户端发信出现在草稿箱bug
2024-04-13 09:26:34 +08:00

43 lines
781 B
Go

package db
import (
"fmt"
_ "github.com/go-sql-driver/mysql"
_ "modernc.org/sqlite"
"pmail/config"
"pmail/utils/context"
"pmail/utils/errors"
"xorm.io/xorm"
)
var Instance *xorm.Engine
func Init() error {
dsn := config.Instance.DbDSN
var err error
switch config.Instance.DbType {
case "mysql":
Instance, err = xorm.NewEngine("mysql", dsn)
case "sqlite":
Instance, err = xorm.NewEngine("sqlite", dsn)
default:
return errors.New("Database Type Error!")
}
if err != nil {
return errors.Wrap(err)
}
Instance.SetMaxOpenConns(100)
Instance.SetMaxIdleConns(10)
return nil
}
func WithContext(ctx *context.Context, sql string) string {
if ctx != nil {
logId := ctx.GetValue(context.LogID)
return fmt.Sprintf("/* %s */ %s", logId, sql)
}
return sql
}