feat(database): add mysql support (#39)

This commit is contained in:
tardc
2021-12-23 01:34:53 +08:00
committed by GitHub
parent 8e96962791
commit 9d7a5b4598
3 changed files with 27 additions and 1 deletions
+3
View File
@@ -10,12 +10,15 @@ var (
type DriverType = string type DriverType = string
const Sqlite = "sqlite" const Sqlite = "sqlite"
const Mysql = "mysql"
func InitDB(driver DriverType, dsn string) (err error) { func InitDB(driver DriverType, dsn string) (err error) {
Driver = driver Driver = driver
switch driver { switch driver {
case Sqlite: case Sqlite:
DB, err = NewSqlite3(dsn) DB, err = NewSqlite3(dsn)
case Mysql:
DB, err = NewMysql(dsn)
} }
return err return err
} }
+14
View File
@@ -0,0 +1,14 @@
package database
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func NewMysql(dsn string) (*gorm.DB, error) {
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
return nil, err
}
return db, nil
}
+10 -1
View File
@@ -1,6 +1,8 @@
package server package server
import ( import (
"github.com/pkg/errors"
"strings"
"sync" "sync"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@@ -60,7 +62,14 @@ func initDatabase(dsn string) {
Level: log.LevelInfo, Level: log.LevelInfo,
}) })
err := database.InitDB(database.Sqlite, dsn) var err error
if strings.Contains(dsn, "@tcp") {
err = database.InitDB(database.Mysql, dsn)
} else if strings.Contains(dsn, ".db") {
err = database.InitDB(database.Sqlite, dsn)
} else {
err = errors.New("unsupported database")
}
if err != nil { if err != nil {
log.Fatal(err.Error()) log.Fatal(err.Error())
} }