new
This commit is contained in:
11
database/initialize.go
Normal file
11
database/initialize.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package database
|
||||
|
||||
import "ferry/tools/config"
|
||||
|
||||
func Setup() {
|
||||
dbType := config.DatabaseConfig.Dbtype
|
||||
if dbType == "mysql" {
|
||||
var db = new(Mysql)
|
||||
db.Setup()
|
||||
}
|
||||
}
|
||||
8
database/interface.go
Normal file
8
database/interface.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package database
|
||||
|
||||
import "github.com/jinzhu/gorm"
|
||||
|
||||
type Database interface {
|
||||
Open(dbType string, conn string) (db *gorm.DB, err error)
|
||||
GetConnect() string
|
||||
}
|
||||
74
database/mysql.go
Normal file
74
database/mysql.go
Normal file
@@ -0,0 +1,74 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"ferry/global/orm"
|
||||
"ferry/tools/config"
|
||||
"strconv"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql" //加载mysql
|
||||
"github.com/jinzhu/gorm"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var (
|
||||
DbType string
|
||||
Host string
|
||||
Port int
|
||||
Name string
|
||||
Username string
|
||||
Password string
|
||||
)
|
||||
|
||||
func (e *Mysql) Setup() {
|
||||
|
||||
var err error
|
||||
var db Database
|
||||
|
||||
db = new(Mysql)
|
||||
orm.MysqlConn = db.GetConnect()
|
||||
orm.Eloquent, err = db.Open(DbType, orm.MysqlConn)
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("%s connect error %v", DbType, err)
|
||||
} else {
|
||||
log.Printf("%s connect success!", DbType)
|
||||
}
|
||||
|
||||
if orm.Eloquent.Error != nil {
|
||||
log.Fatalf("database error %v", orm.Eloquent.Error)
|
||||
}
|
||||
|
||||
orm.Eloquent.LogMode(true)
|
||||
}
|
||||
|
||||
type Mysql struct {
|
||||
}
|
||||
|
||||
func (e *Mysql) Open(dbType string, conn string) (db *gorm.DB, err error) {
|
||||
return gorm.Open(dbType, conn)
|
||||
}
|
||||
|
||||
func (e *Mysql) GetConnect() string {
|
||||
|
||||
DbType = config.DatabaseConfig.Dbtype
|
||||
Host = config.DatabaseConfig.Host
|
||||
Port = config.DatabaseConfig.Port
|
||||
Name = config.DatabaseConfig.Name
|
||||
Username = config.DatabaseConfig.Username
|
||||
Password = config.DatabaseConfig.Password
|
||||
|
||||
var conn bytes.Buffer
|
||||
conn.WriteString(Username)
|
||||
conn.WriteString(":")
|
||||
conn.WriteString(Password)
|
||||
conn.WriteString("@tcp(")
|
||||
conn.WriteString(Host)
|
||||
conn.WriteString(":")
|
||||
conn.WriteString(strconv.Itoa(Port))
|
||||
conn.WriteString(")")
|
||||
conn.WriteString("/")
|
||||
conn.WriteString(Name)
|
||||
conn.WriteString("?charset=utf8&parseTime=True&loc=Local&timeout=1000ms")
|
||||
return conn.String()
|
||||
}
|
||||
15
database/sqlite3.go
Normal file
15
database/sqlite3.go
Normal file
@@ -0,0 +1,15 @@
|
||||
// +build sqlite3
|
||||
|
||||
package database
|
||||
|
||||
import (
|
||||
_ "github.com/jinzhu/gorm/dialects/sqlite"
|
||||
)
|
||||
|
||||
type SqlLite struct {
|
||||
}
|
||||
|
||||
func (*SqlLite) Open(dbType string, conn string) (db *gorm.DB, err error) {
|
||||
eloquent, err := gorm.Open(dbType, conn)
|
||||
return eloquent, err
|
||||
}
|
||||
Reference in New Issue
Block a user