ssh-manager/database/conn.go

43 lines
788 B
Go
Raw Normal View History

2020-11-16 16:41:02 +08:00
package database
import (
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
"log"
"ssh_manage/config"
"ssh_manage/model"
)
var dbConf = config.Config.Database
2020-11-16 16:41:02 +08:00
var pool *sqlpool
type MyDb struct {
2020-11-16 16:41:02 +08:00
DB *gorm.DB
}
func init() {
pool = newpool(newDb, dbConf.Poolsize)
2020-11-16 16:41:02 +08:00
}
func newDb() *gorm.DB {
db, err := gorm.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local", dbConf.Username, dbConf.Password, dbConf.Host, dbConf.Port, dbConf.Dbname))
2020-11-16 16:41:02 +08:00
if err != nil {
log.Panicf("db open err :%s", err.Error())
}
if !db.HasTable(&model.User{}){
log.Println("init table")
db.CreateTable(&model.Server{},&model.User{})
}
return db
}
func (s *MyDb) Close() {
2020-11-16 16:41:02 +08:00
pool.put(s.DB)
}
func Get() *MyDb {
return &MyDb{pool.get()}
2020-11-16 16:41:02 +08:00
}