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
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
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())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user