/
db.go
58 lines (54 loc) · 1.14 KB
/
db.go
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
package server
import (
"os"
"path/filepath"
"github.com/boltdb/bolt"
_ "github.com/go-sql-driver/mysql"
"github.com/gokins/core"
"github.com/gokins/gokins/comm"
"github.com/gokins/gokins/migrates"
"github.com/sirupsen/logrus"
"xorm.io/xorm"
)
func initDb() error {
var err error
dvs := comm.DATASOURCE_DRIVER_MYSQL
ul := comm.Cfg.Datasource.Url
if comm.Cfg.Datasource.Driver != "" {
dvs = comm.Cfg.Datasource.Driver
}
comm.IsMySQL = dvs == comm.DATASOURCE_DRIVER_MYSQL
if !comm.Installed {
switch dvs {
case comm.DATASOURCE_DRIVER_MYSQL:
err = migrates.UpMysqlMigrate(ul)
break
case comm.DATASOURCE_DRIVER_POSTGRES:
err = migrates.UpPostgresMigrate(ul)
break
default:
err = migrates.UpSqliteMigrate(ul)
}
}
if err != nil {
return err
}
db, err := xorm.NewEngine(dvs, comm.Cfg.Datasource.Url)
if err != nil {
return err
}
db.ShowSQL(core.Debug)
comm.Db = db
return nil
}
func initCache() error {
pth := filepath.Join(comm.WorkPath, "cache.dat")
os.Remove(pth)
db, err := bolt.Open(pth, 0640, nil)
if err != nil {
logrus.Errorf("InitCache err:%v", err)
return err
}
comm.BCache = db
return nil
}