/
xorm.go
46 lines (37 loc) · 981 Bytes
/
xorm.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
package db
import (
"github.com/zgwit/iot-master/v4/config"
"xorm.io/xorm"
"xorm.io/xorm/log"
//按需加载数据库驱动
//_ "github.com/denisenkom/go-mssqldb" //Sql Server
_ "github.com/go-sql-driver/mysql"
//_ "github.com/godror/godror" //Oracle
_ "github.com/lib/pq" //PostgreSQL
//_ "modernc.org/sqlite"
//_ "github.com/mattn/go-sqlite3" //CGO版本
//_ "github.com/glebarez/go-sqlite" //纯Go版本 使用ccgo翻译的,偶有文件锁问题
)
var Engine *xorm.Engine
func Startup() error {
var err error
Engine, err = xorm.NewEngine(config.GetString(MODULE, "type"), config.GetString(MODULE, "url"))
if err != nil {
return err
}
if config.GetBool(MODULE, "debug") {
Engine.ShowSQL(true)
Engine.SetLogLevel(log.LOG_DEBUG)
}
//Engine.SetLogger(logrus.StandardLogger())
if config.GetBool(MODULE, "sync") {
err = Engine.Sync2(models...)
if err != nil {
return err
}
}
return nil
}
func Shutdown() error {
return Engine.Close()
}