This commit is contained in:
YuleiLan
2020-07-13 20:33:20 +08:00
commit cca0845f24
106 changed files with 17580 additions and 0 deletions

11
database/initialize.go Normal file
View 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
View 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
View 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
View 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
}