mirror of
https://github.com/andatoshiki/shikigrid.git
synced 2026-06-06 04:04:15 +00:00
39 lines
879 B
Go
39 lines
879 B
Go
package models
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/evilsocket/islazy/log"
|
|
"github.com/jinzhu/gorm"
|
|
"os"
|
|
)
|
|
|
|
var db *gorm.DB
|
|
|
|
func Setup() (err error) {
|
|
hostname := os.Getenv("DB_HOST")
|
|
port := os.Getenv("DB_PORT")
|
|
username := os.Getenv("DB_USER")
|
|
password := os.Getenv("DB_PASSWORD")
|
|
name := os.Getenv("DB_NAME")
|
|
|
|
log.Info("connecting to %s:%s ...", hostname, port)
|
|
dbURL := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, hostname, port, name)
|
|
if db, err = gorm.Open("mysql", dbURL); err != nil {
|
|
return
|
|
}
|
|
db.Debug().AutoMigrate(&Unit{}, &AccessPoint{}, &Message{})
|
|
return
|
|
}
|
|
|
|
func Create(v interface{}) *gorm.DB {
|
|
return db.Create(v)
|
|
}
|
|
|
|
func Update(v interface{}) *gorm.DB {
|
|
return db.Model(v).Update(v)
|
|
}
|
|
|
|
func UpdateFields(v interface{}, fields map[string]interface{}) *gorm.DB {
|
|
return db.Model(v).Updates(fields)
|
|
}
|