1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package mysql
import (
"ai_developer_admin/models"
"fmt"
"github.com/beego/beego/orm"
"github.com/beego/beego/v2/core/logs"
beego "github.com/beego/beego/v2/server/web"
_ "github.com/go-sql-driver/mysql"
"sync"
)
type Singleton struct {
Ormer orm.Ormer
}
var instance *Singleton
var once sync.Once
func GetMysqlInstace() *Singleton {
once.Do(func() {
instance = &Singleton{
Ormer: orm.NewOrm(),
}
})
return instance
}
func init() {
logs.Debug("mysql lib init")
orm.Debug = true
if err := orm.RegisterDriver("mysql", orm.DRMySQL); err != nil {
logs.Error(err.Error())
}
orm.RegisterModel(new(models.User))
//orm.RegisterModel(new(models.App))
orm.RegisterModel(new(models.ChargeRecord))
orm.RegisterModel(new(models.UserLevel))
orm.RegisterModel(new(models.ApiKey))
orm.RegisterModel(new(models.JwtToken))
orm.RegisterModel(new(models.TaskType))
orm.RegisterModel(new(models.UserLevelTaskType))
logs.Debug("AppConfig", beego.AppConfig)
dbuser, _ := beego.AppConfig.String("mysqluser")
dbpass, _ := beego.AppConfig.String("mysqlpass")
dbhost, _ := beego.AppConfig.String("mysqlhost")
dbport, _ := beego.AppConfig.String("mysqlport")
dbname, _ := beego.AppConfig.String("mysqldb")
logs.Debug("mysql info", dbuser, dbpass, dbhost, dbport, dbname)
dbURL := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", dbuser, dbpass, dbhost, dbport, dbname)
logs.Debug("Will connect to mysql url", dbURL)
if err := orm.RegisterDataBase("default", "mysql", dbURL); err != nil {
logs.Error(err.Error())
panic(err.Error())
}
orm.SetMaxIdleConns("default", 10)
orm.SetMaxOpenConns("default", 100)
}