Merge pull request #271 from kikiyou/dev

v1.2.1支持sqlite3
This commit is contained in:
wenjianzhang
2020-10-23 23:53:05 +08:00
committed by GitHub
7 changed files with 87 additions and 13 deletions
+3
View File
@@ -6,6 +6,7 @@ import (
"gorm.io/driver/mysql" "gorm.io/driver/mysql"
"gorm.io/driver/postgres" "gorm.io/driver/postgres"
"gorm.io/driver/sqlite"
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/schema" "gorm.io/gorm/schema"
@@ -23,6 +24,8 @@ func getGormFromDb(driver string, db *sql.DB, config *gorm.Config) (*gorm.DB, er
return gorm.Open(mysql.New(mysql.Config{Conn: db}), config) return gorm.Open(mysql.New(mysql.Config{Conn: db}), config)
case "postgres": case "postgres":
return gorm.Open(postgres.New(postgres.Config{Conn: db}), config) return gorm.Open(postgres.New(postgres.Config{Conn: db}), config)
case "sqlite3":
return gorm.Open(sqlite.Open(global.Source), config)
default: default:
return nil, errors.New("not support this db driver") return nil, errors.New("not support this db driver")
} }
+2 -6
View File
@@ -1,3 +1,5 @@
// +build !sqlite3
package database package database
func Setup(driver string) { func Setup(driver string) {
@@ -7,12 +9,6 @@ func Setup(driver string) {
db.Setup() db.Setup()
} }
//TODO 如果需要sqlite3请开启下面注释
//if dbType == "sqlite3" {
// var db = new(SqLite)
// db.Setup()
//}
if dbType == "postgres" { if dbType == "postgres" {
var db = new(PgSql) var db = new(PgSql)
db.Setup() db.Setup()
+21
View File
@@ -0,0 +1,21 @@
// +build sqlite3
package database
func Setup(driver string) {
dbType := driver
if dbType == "mysql" {
var db = new(Mysql)
db.Setup()
}
if dbType == "sqlite3" {
var db = new(SqLite)
db.Setup()
}
if dbType == "postgres" {
var db = new(PgSql)
db.Setup()
}
}
+17 -7
View File
@@ -3,6 +3,7 @@
package database package database
import ( import (
"database/sql"
"log" "log"
"os" "os"
"time" "time"
@@ -12,8 +13,10 @@ import (
"gorm.io/gorm/logger" "gorm.io/gorm/logger"
"gorm.io/gorm/schema" "gorm.io/gorm/schema"
"go-admin/common/config"
"go-admin/common/global" "go-admin/common/global"
"go-admin/tools/config" "go-admin/tools"
toolsConfig "go-admin/tools/config"
) )
type SqLite struct { type SqLite struct {
@@ -24,7 +27,15 @@ func (e *SqLite) Setup() {
global.Source = e.GetConnect() global.Source = e.GetConnect()
log.Println(global.Source) log.Println(global.Source)
global.Eloquent, err = e.Open(e.GetDriver(), &gorm.Config{ db, err := sql.Open("sqlite3", global.Source)
if err != nil {
global.Logger.Fatal(tools.Red(e.GetDriver()+" connect error :"), err)
}
global.Cfg.SetDb(&config.DBConfig{
Driver: "sqlite3",
DB: db,
})
global.Eloquent, err = e.Open(e.GetConnect(), &gorm.Config{
NamingStrategy: schema.NamingStrategy{ NamingStrategy: schema.NamingStrategy{
SingularTable: true, SingularTable: true,
}, },
@@ -40,7 +51,7 @@ func (e *SqLite) Setup() {
log.Fatalf("database error %v", global.Eloquent.Error) log.Fatalf("database error %v", global.Eloquent.Error)
} }
if config.LoggerConfig.EnabledDB { if toolsConfig.LoggerConfig.EnabledDB {
global.Eloquent.Logger = logger.New(log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{ global.Eloquent.Logger = logger.New(log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{
SlowThreshold: time.Second, SlowThreshold: time.Second,
Colorful: true, Colorful: true,
@@ -51,14 +62,13 @@ func (e *SqLite) Setup() {
// 打开数据库连接 // 打开数据库连接
func (*SqLite) Open(conn string, cfg *gorm.Config) (db *gorm.DB, err error) { func (*SqLite) Open(conn string, cfg *gorm.Config) (db *gorm.DB, err error) {
eloquent, err := gorm.Open(sqlite.Open(conn), cfg) return gorm.Open(sqlite.Open(conn), cfg)
return eloquent, err
} }
func (e *SqLite) GetConnect() string { func (e *SqLite) GetConnect() string {
return config.DatabaseConfig.Source return toolsConfig.DatabaseConfig.Source
} }
func (e *SqLite) GetDriver() string { func (e *SqLite) GetDriver() string {
return config.DatabaseConfig.Driver return toolsConfig.DatabaseConfig.Driver
} }
+44
View File
@@ -0,0 +1,44 @@
settings:
application:
# dev开发环境 test测试环境 prod线上环境
mode: dev
# 服务器ip,默认使用 0.0.0.0
host: 0.0.0.0
# 服务名称
name: testApp
# 端口号
port: 8000 # 服务端口号
readtimeout: 1
writertimeout: 2
# 数据权限功能开关
enabledp: false
logger:
# 日志存放路径
path: temp/logs
# 控制台日志
stdout: true
# 日志等级
level: all
# 业务日志开关
enabledbus: true
# 请求日志开关
enabledreq: false
# 数据库日志开关 dev模式,将自动开启
enableddb: false
# 自动任务日志开关 dev模式,将自动开启
enabledjob: false
jwt:
# token 密钥,生产环境时及的修改
secret: go-admin
# token 过期时间 单位:秒
timeout: 3600
database:
# 数据库类型 mysqlsqlite3 postgres
driver: sqlite3
# 数据库连接sqlite3数据文件的路径
source: sqlite3.db
gen:
# 代码生成读取的数据库名称
dbname: dbname
# 代码生成是使用前端代码存放位置,需要指定到src文件夹,相对路径
frontpath: ../go-admin-ui/src
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.