package models
|
|
import (
|
"fmt"
|
"github.com/jinzhu/gorm"
|
_ "github.com/jinzhu/gorm/dialects/sqlite"
|
"os"
|
"path"
|
"path/filepath"
|
"vamicro/config"
|
)
|
|
var db *gorm.DB
|
|
|
// Init creates a connection to mysql database and
|
// migrates any new models
|
func Init() {
|
var err error
|
//dbDir := getDbDir()
|
//dbPath := path.Join(dbDir, "version.db")
|
db, err = gorm.Open(config.DBconf.Name, "../config/version.db")
|
if err != nil {
|
fmt.Println("../config/version.db", config.DBconf.Name)
|
fmt.Println("Db Init failed, ", err)
|
return
|
} else {
|
fmt.Println("Db Init ok, file:", "../config/version.db")
|
}
|
|
db.LogMode(true)
|
//db.SetLogger(&DbLogger{})
|
//&Program{},
|
db.AutoMigrate(&SysSetting{}, &AutoBackupConf{})
|
InitSysSettingData()
|
}
|
|
//GetDB ...
|
func GetDB() *gorm.DB {
|
return db
|
}
|
|
func CloseDB() {
|
db.Close()
|
}
|
|
func getExePath() string {
|
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
|
if nil != err {
|
return "./"
|
}
|
|
return dir
|
}
|
|
func getDbDir() string {
|
dbPath := getExePath()
|
dbPath = path.Join(dbPath, "db")
|
if _, err := os.Stat(dbPath); os.IsNotExist(err) {
|
_ = os.MkdirAll(dbPath, 0777)
|
}
|
|
return dbPath
|
}
|