parent
97bffe8290
commit
1834fe628e
@ -0,0 +1,73 @@
|
|||||||
|
package global
|
||||||
|
|
||||||
|
import (
|
||||||
|
"WechatGateWay/handle"
|
||||||
|
"fmt"
|
||||||
|
"github.com/jinzhu/gorm"
|
||||||
|
"github.com/spf13/viper"
|
||||||
|
"log"
|
||||||
|
"net/url"
|
||||||
|
)
|
||||||
|
|
||||||
|
func InitDB() *gorm.DB {
|
||||||
|
driverName := "mysql"
|
||||||
|
host := viper.GetString("db.MySQLHOST")
|
||||||
|
port := viper.GetInt("db.MySQLPORT")
|
||||||
|
database := viper.GetString("db.MySQLDB")
|
||||||
|
username := viper.GetString("db.MySQLUSER")
|
||||||
|
password := viper.GetString("db.MySQLPASSWORD")
|
||||||
|
charset := viper.GetString("db.MySQLCharset")
|
||||||
|
loc := viper.GetString("db.MySQLLoc")
|
||||||
|
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&parseTime=true&loc=%s",
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
host,
|
||||||
|
port,
|
||||||
|
database,
|
||||||
|
charset,
|
||||||
|
url.QueryEscape(loc))
|
||||||
|
|
||||||
|
//dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
|
||||||
|
db, err := gorm.Open(driverName, dsn)
|
||||||
|
//db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
log.Println("Connected to database")
|
||||||
|
|
||||||
|
//db.DB()实现一个连接池
|
||||||
|
//设置最大连接数和最大闲置数
|
||||||
|
//默认0表示不限制
|
||||||
|
db.DB().SetMaxIdleConns(0)
|
||||||
|
db.DB().SetMaxOpenConns(0)
|
||||||
|
|
||||||
|
//给默认表名加前缀
|
||||||
|
gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string {
|
||||||
|
//return "admin_" + defaultTableName + "_test_env"
|
||||||
|
return "" + defaultTableName + ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// 全局禁用表名复数
|
||||||
|
// 如果设置为true,`User`的默认表名为`user`,使用`TableName`设置的表名不受影响
|
||||||
|
// 如果设置为false,`User`的默认表名为`users`
|
||||||
|
db.SingularTable(false)
|
||||||
|
|
||||||
|
//打开sql日志
|
||||||
|
db.LogMode(viper.GetBool("db.GORMLog"))
|
||||||
|
|
||||||
|
//创建表时,添加后缀
|
||||||
|
db.Set("grom:table_options", "ENGINE=InnoDB")
|
||||||
|
|
||||||
|
//自动建表
|
||||||
|
db.AutoMigrate(&handle.WechatLog{})
|
||||||
|
|
||||||
|
DB = db
|
||||||
|
return db
|
||||||
|
|
||||||
|
} else {
|
||||||
|
log.Println("Connected to database failed")
|
||||||
|
//log.Println("failed to connect database, err: " + err.Error())
|
||||||
|
panic("failed to connect database, err: " + err.Error())
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package handle
|
||||||
|
|
||||||
|
import "github.com/jinzhu/gorm"
|
||||||
|
|
||||||
|
type WechatLog struct {
|
||||||
|
gorm.Model
|
||||||
|
ToUsername string `xml:"ToUserName"`
|
||||||
|
FromUsername string `xml:"FromUserName"`
|
||||||
|
CreateTime uint32 `xml:"CreateTime"`
|
||||||
|
MsgType string `xml:"MsgType"`
|
||||||
|
Content string `xml:"Content"`
|
||||||
|
}
|
||||||
Loading…
Reference in new issue