fix: admin初始化有误修复

This commit is contained in:
npc0-hue
2026-03-06 12:50:00 +08:00
parent 6c3a61d479
commit 1b447b7b0b
6 changed files with 93 additions and 12 deletions
+7 -8
View File
@@ -5,9 +5,8 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
"github.com/flipped-aurora/gin-vue-admin/server/service/system"
"go.uber.org/zap"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
type DBApi struct{}
@@ -20,7 +19,8 @@ type DBApi struct{}
// @Success 200 {object} response.Response{data=string} "初始化用户数据库"
// @Router /init/initdb [post]
func (i *DBApi) InitDB(c *gin.Context) {
if global.GVA_DB != nil {
if !initDBService.IfInit() {
global.GVA_LOG.Error("已存在数据库配置!")
response.FailWithMessage("已存在数据库配置", c)
return
@@ -51,12 +51,11 @@ func (i *DBApi) InitDB(c *gin.Context) {
// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} "初始化用户数据库"
// @Router /init/checkdb [post]
func (i *DBApi) CheckDB(c *gin.Context) {
var (
message = "前往初始化数据库"
needInit = true
)
// init
var needInit = true
var message = "前往初始化数据库"
if global.GVA_DB != nil {
if initDBService.IfInit() {
message = "数据库无需初始化"
needInit = false
}
+1 -1
View File
@@ -152,7 +152,7 @@ pgsql:
db-name: dify
username: postgres
password: difyai123456
path: 127.0.0.1
path: 127.0.0.01
engine: ""
log-mode: error
max-idle-conns: 10
+51 -1
View File
@@ -81,8 +81,58 @@ func Gorm() *gorm.DB {
}
func RegisterTables(db *gorm.DB) {
var err error
var count int64
var menu system.SysBaseMenuBtn
var authority system.SysAuthority
if err = global.GVA_DB.Model(&menu).Count(&count).Error; count == 0 {
if err = global.GVA_DB.Model(&authority).Count(&count).Error; count == 1 {
return
}
}
// auto
err = db.AutoMigrate(
system.SysApi{},
system.SysIgnoreApi{},
system.SysUser{},
system.SysBaseMenu{},
system.JwtBlacklist{},
system.SysAuthority{},
system.SysDictionary{},
system.SysOperationRecord{},
system.SysAutoCodeHistory{},
system.SysDictionaryDetail{},
system.SysBaseMenuParameter{},
system.SysBaseMenuBtn{},
system.SysAuthorityBtn{},
system.SysAutoCodePackage{},
system.SysExportTemplate{},
system.Condition{},
system.JoinTemplate{},
system.SysParams{},
err := db.AutoMigrate(tables)
example.ExaFile{},
example.ExaCustomer{},
example.ExaFileChunk{},
example.ExaFileUploadAndDownload{},
adapter.CasbinRule{},
// Extend gaia model
gaia.AccountDingTalkExtend{},
gaia.AppRequestTestBatch{},
gaia.AppRequestTest{},
gaia.SystemIntegration{}, // Extend System Integration
gaia.ForwardingExtend{}, // Extend Forwarding Extend
gaia.BatchWorkflow{}, // Extend Batch Workflow
gaia.BatchWorkflowTask{}, // Extend Batch Workflow Task
gaia.AppVersionConfig{}, // 应用版本全局配置(Token
gaia.AppVersionRelease{}, // 应用版本发布
gaia.AppVersionDownload{}, // 应用版本各平台安装包
gaia.ModelProviderConfig{}, // 模型提供商配置
gaia.ModelProxyLog{}, // 模型中转请求日志
system.SysUserGlobalCode{}, // Extend Global Code
)
if err != nil {
global.GVA_LOG.Error("register table failed", zap.Error(err))
+19 -1
View File
@@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"github.com/flipped-aurora/gin-vue-admin/server/global"
modelSystem "github.com/flipped-aurora/gin-vue-admin/server/model/system"
"github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
"gorm.io/gorm"
"sort"
@@ -86,6 +87,22 @@ func RegisterInit(order int, i SubInitializer) {
type InitDBService struct{}
// IfInit 判断是否数据库初始化了
func (initDBService *InitDBService) IfInit() (init bool) {
var menuCount, authorityCount int64
if global.GVA_DB != nil {
init = true
var menu modelSystem.SysBaseMenuBtn
var authority modelSystem.SysAuthority
global.GVA_DB.Model(&menu).Count(&menuCount)
global.GVA_DB.Model(&authority).Count(&authorityCount)
if menuCount == 0 && authorityCount == 1 {
init = false
}
}
return init
}
// InitDB 创建数据库并初始化 总入口
func (initDBService *InitDBService) InitDB(conf request.InitDB) (err error) {
ctx := context.TODO()
@@ -122,7 +139,8 @@ func (initDBService *InitDBService) InitDB(conf request.InitDB) (err error) {
db := ctx.Value("db").(*gorm.DB)
global.GVA_DB = db
db.Exec("DELETE FROM sys_base_menus")
db.Exec("DELETE FROM sys_authorities")
if err = initHandler.InitTables(ctx, initializers); err != nil {
return err
}