mirror of
https://github.com/Li4n0/revsuit.git
synced 2026-09-21 22:30:46 +08:00
feat(database): add mysql support (#39)
This commit is contained in:
@@ -10,12 +10,15 @@ var (
|
||||
type DriverType = string
|
||||
|
||||
const Sqlite = "sqlite"
|
||||
const Mysql = "mysql"
|
||||
|
||||
func InitDB(driver DriverType, dsn string) (err error) {
|
||||
Driver = driver
|
||||
switch driver {
|
||||
case Sqlite:
|
||||
DB, err = NewSqlite3(dsn)
|
||||
case Mysql:
|
||||
DB, err = NewMysql(dsn)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -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
@@ -1,6 +1,8 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"github.com/pkg/errors"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -60,7 +62,14 @@ func initDatabase(dsn string) {
|
||||
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 {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user