Skip to content

Commit c6700a7

Browse files
committed
适配了Gorm的v1.20.0版本,迁移初始表的注册函数至gorm.go并优化了代码,注释了sqlite的初始化,需要的自行打开注释,默认使用mysql
1 parent e9ef8f7 commit c6700a7

File tree

6 files changed

+58
-133
lines changed

6 files changed

+58
-133
lines changed

server/go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ require (
4141
github.com/tebeka/strftime v0.1.3 // indirect
4242
github.com/unrolled/secure v1.0.7
4343
go.uber.org/zap v1.10.0
44+
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e // indirect
4445
golang.org/x/sys v0.0.0-20200610111108-226ff32320da // indirect
4546
golang.org/x/tools v0.0.0-20200324003944-a576cf524670 // indirect
4647
google.golang.org/protobuf v1.24.0 // indirect
@@ -50,5 +51,5 @@ require (
5051
gorm.io/driver/postgres v0.2.6
5152
gorm.io/driver/sqlite v1.1.1
5253
gorm.io/driver/sqlserver v0.2.4
53-
gorm.io/gorm v0.2.35
54+
gorm.io/gorm v1.20.0
5455
)

server/initialize/db_table.go

Lines changed: 0 additions & 36 deletions
This file was deleted.

server/initialize/gorm.go

Lines changed: 56 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,63 @@ package initialize
22

33
import (
44
"gin-vue-admin/global"
5+
"gin-vue-admin/model"
56
"go.uber.org/zap"
67
"gorm.io/driver/mysql"
78
"gorm.io/driver/postgres"
8-
"gorm.io/driver/sqlite"
99
"gorm.io/driver/sqlserver"
1010
"gorm.io/gorm"
1111
"gorm.io/gorm/logger"
1212
"os"
1313
)
1414

15+
var err error
16+
1517
// Gorm 初始化数据库并产生数据库全局变量
1618
func Gorm() {
1719
switch global.GVA_CONFIG.System.DbType {
1820
case "mysql":
1921
GormMysql()
2022
case "postgresql":
2123
GormPostgreSql()
22-
case "sqlite":
23-
GormSqlite()
24+
//case "sqlite": // sqlite需要gcc支持 windows用户需要自行安装gcc 如需使用打开注释即可
25+
// GormSqlite()
2426
case "sqlserver":
2527
GormSqlServer()
2628
}
2729
}
2830

31+
// GormDBTables 注册数据库表专用
32+
func GormDBTables(db *gorm.DB) {
33+
err := db.AutoMigrate(
34+
model.SysUser{},
35+
model.SysAuthority{},
36+
model.SysApi{},
37+
model.SysBaseMenu{},
38+
model.SysBaseMenuParameter{},
39+
model.JwtBlacklist{},
40+
model.SysWorkflow{},
41+
model.SysWorkflowStepInfo{},
42+
model.SysDictionary{},
43+
model.SysDictionaryDetail{},
44+
model.ExaFileUploadAndDownload{},
45+
model.ExaFile{},
46+
model.ExaFileChunk{},
47+
model.ExaSimpleUploader{},
48+
model.ExaCustomer{},
49+
model.SysOperationRecord{},
50+
)
51+
if err != nil {
52+
global.GVA_LOG.Error("register table failed", zap.Any("err", err))
53+
os.Exit(0)
54+
}
55+
global.GVA_LOG.Debug("register table success")
56+
}
57+
2958
// GormMysql 初始化Mysql数据库
3059
func GormMysql() {
3160
m := global.GVA_CONFIG.Mysql
32-
dsn := m.Username + ":" + m.Password + "@(" + m.Path + ")/" + m.Dbname + "?" + m.Config
61+
dsn := m.Username + ":" + m.Password + "@tcp(" + m.Path + ")/" + m.Dbname + "?" + m.Config
3362
mysqlConfig := mysql.Config{
3463
DSN: dsn, // DSN data source name
3564
DefaultStringSize: 191, // string 类型字段的默认长度
@@ -39,12 +68,12 @@ func GormMysql() {
3968
SkipInitializeWithVersion: false, // 根据版本自动配置
4069
}
4170
gormConfig := config(m.LogMode)
42-
if db, err := gorm.Open(mysql.New(mysqlConfig), gormConfig); err != nil {
71+
if global.GVA_DB, err = gorm.Open(mysql.New(mysqlConfig), gormConfig); err != nil {
4372
global.GVA_LOG.Error("MySQL启动异常", zap.Any("err", err))
4473
os.Exit(0)
4574
} else {
46-
global.GVA_DB = db
47-
sqlDB, _ := db.DB()
75+
GormDBTables(global.GVA_DB)
76+
sqlDB, _ := global.GVA_DB.DB()
4877
sqlDB.SetMaxIdleConns(m.MaxIdleConns)
4978
sqlDB.SetMaxOpenConns(m.MaxOpenConns)
5079
}
@@ -59,42 +88,42 @@ func GormPostgreSql() {
5988
PreferSimpleProtocol: p.PreferSimpleProtocol, // 禁用隐式 prepared statement
6089
}
6190
gormConfig := config(p.Logger)
62-
if db, err := gorm.Open(postgres.New(postgresConfig), gormConfig); err != nil {
91+
if global.GVA_DB, err = gorm.Open(postgres.New(postgresConfig), gormConfig); err != nil {
6392
global.GVA_LOG.Error("PostgreSql启动异常", zap.Any("err", err))
6493
os.Exit(0)
6594
} else {
66-
global.GVA_DB = db
67-
sqlDB, _ := db.DB()
95+
GormDBTables(global.GVA_DB)
96+
sqlDB, _ := global.GVA_DB.DB()
6897
sqlDB.SetMaxIdleConns(p.MaxIdleConns)
6998
sqlDB.SetMaxOpenConns(p.MaxOpenConns)
7099
}
71100
}
72101

73-
// GormSqlite 初始化Sqlite数据库
74-
func GormSqlite() {
75-
s := global.GVA_CONFIG.Sqlite
76-
gormConfig := config(s.Logger)
77-
if db, err := gorm.Open(sqlite.Open(s.Path), gormConfig); err != nil {
78-
global.GVA_LOG.Error("Sqlite启动异常", zap.Any("err", err))
79-
os.Exit(0)
80-
} else {
81-
global.GVA_DB = db
82-
sqlDB, _ := db.DB()
83-
sqlDB.SetMaxIdleConns(s.MaxIdleConns)
84-
sqlDB.SetMaxOpenConns(s.MaxOpenConns)
85-
}
86-
}
102+
// GormSqlite 初始化Sqlite数据库 sqlite需要gcc支持 windows用户需要自行安装gcc 如需使用打开注释即可
103+
//func GormSqlite() {
104+
// s := global.GVA_CONFIG.Sqlite
105+
// gormConfig := config(s.Logger)
106+
// if global.GVA_DB, err = gorm.Open(sqlite.Open(s.Path), gormConfig); err != nil {
107+
// global.GVA_LOG.Error("Sqlite启动异常", zap.Any("err", err))
108+
// os.Exit(0)
109+
// } else {
110+
// GormDBTables(global.GVA_DB)
111+
// sqlDB, _ := global.GVA_DB.DB()
112+
// sqlDB.SetMaxIdleConns(s.MaxIdleConns)
113+
// sqlDB.SetMaxOpenConns(s.MaxOpenConns)
114+
// }
115+
//}
87116

88117
// GormSqlite 初始化Sqlite数据库
89118
func GormSqlServer() {
90119
ss := global.GVA_CONFIG.Sqlserver
91120
dsn := "sqlserver://" + ss.Username + ":" + ss.Password + "@" + ss.Path + "?database=gorm"
92-
if db, err := gorm.Open(sqlserver.Open(dsn), &gorm.Config{}); err != nil {
121+
if global.GVA_DB, err = gorm.Open(sqlserver.Open(dsn), &gorm.Config{}); err != nil {
93122
global.GVA_LOG.Error("SqlServer启动异常", zap.Any("err", err))
94123
os.Exit(0)
95124
} else {
96-
global.GVA_DB = db
97-
sqlDB, _ := db.DB()
125+
GormDBTables(global.GVA_DB)
126+
sqlDB, _ := global.GVA_DB.DB()
98127
sqlDB.SetMaxIdleConns(ss.MaxIdleConns)
99128
sqlDB.SetMaxOpenConns(ss.MaxOpenConns)
100129
}

server/initialize/mysql.go

Lines changed: 0 additions & 45 deletions
This file was deleted.

server/initialize/sqlite.go

Lines changed: 0 additions & 23 deletions
This file was deleted.

server/main.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616
// @BasePath /
1717
func main() {
1818
initialize.Gorm()
19-
initialize.DBTables()
2019
if global.GVA_CONFIG.System.NeedInitData {
2120
init_data.InitData() // 通过配置文件初始化数据 默认为 false 首次运行需要将 ./config.yaml中 system下的 need-init-data 修改为true
2221
}

0 commit comments

Comments
 (0)