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 }