mirror of
https://github.com/flipped-aurora/gin-vue-admin.git
synced 2026-09-20 20:19:56 +00:00
* feat: ai相关调用调整 * feat: ai请求模式变更 * feat: ai自动化完善 * feat: 添加环境变量支持,条件渲染开发环境特定元素 * feat: 2.5版本插件,不再冗余进主项目,可以做到完全自动安装。 * feat: 添加插件管理功能,包括获取插件列表和删除插件的API接口 * feat: 同步测试插件的id调整 * feat: 增加插件相关初始化api * feat: 增加登录日志 * feat: 增加签发token功能 * feat: 更安全的目录清理功能,确保仅在无Go文件时删除目录 * feat: 增加skills定义能力 * feat: 优化技能管理界面,增强用户体验和视觉效果 * feat: 更新授权链接,确保用户获取最新的授权信息 * feat: 修改技能定义器名称为“Skills管理”,并重命名文件为sys_skills.go * feat: 增加全局约束的获取和保存功能,更新相关API和前端实现 * feat: 增加skills全局约束管理 * feat: 添加 vite-check-multiple-dom 插件,支持路由多根检测 (#2173) --------- Co-authored-by: piexlMax(奇淼 <qimiaojiangjizhao@gmail.com> Co-authored-by: Azir-11 <2075125282@qq.com> Co-authored-by: 青菜白玉汤 <79054161+Azir-11@users.noreply.github.com>
117 lines
2.9 KiB
Go
117 lines
2.9 KiB
Go
package initialize
|
|
|
|
import (
|
|
"context"
|
|
adapter "github.com/casbin/gorm-adapter/v3"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/model/example"
|
|
sysModel "github.com/flipped-aurora/gin-vue-admin/server/model/system"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/plugin/announcement/model"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/service/system"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
const initOrderEnsureTables = system.InitOrderExternal - 1
|
|
|
|
type ensureTables struct{}
|
|
|
|
// auto run
|
|
func init() {
|
|
system.RegisterInit(initOrderEnsureTables, &ensureTables{})
|
|
}
|
|
|
|
func (e *ensureTables) InitializerName() string {
|
|
return "ensure_tables_created"
|
|
}
|
|
func (e *ensureTables) InitializeData(ctx context.Context) (next context.Context, err error) {
|
|
return ctx, nil
|
|
}
|
|
|
|
func (e *ensureTables) DataInserted(ctx context.Context) bool {
|
|
return true
|
|
}
|
|
|
|
func (e *ensureTables) MigrateTable(ctx context.Context) (context.Context, error) {
|
|
db, ok := ctx.Value("db").(*gorm.DB)
|
|
if !ok {
|
|
return ctx, system.ErrMissingDBContext
|
|
}
|
|
tables := []interface{}{
|
|
sysModel.SysApi{},
|
|
sysModel.SysUser{},
|
|
sysModel.SysBaseMenu{},
|
|
sysModel.SysAuthority{},
|
|
sysModel.JwtBlacklist{},
|
|
sysModel.SysDictionary{},
|
|
sysModel.SysAutoCodeHistory{},
|
|
sysModel.SysOperationRecord{},
|
|
sysModel.SysDictionaryDetail{},
|
|
sysModel.SysBaseMenuParameter{},
|
|
sysModel.SysBaseMenuBtn{},
|
|
sysModel.SysAuthorityBtn{},
|
|
sysModel.SysAutoCodePackage{},
|
|
sysModel.SysExportTemplate{},
|
|
sysModel.Condition{},
|
|
sysModel.JoinTemplate{},
|
|
sysModel.SysParams{},
|
|
sysModel.SysVersion{},
|
|
sysModel.SysError{},
|
|
sysModel.SysLoginLog{},
|
|
sysModel.SysApiToken{},
|
|
adapter.CasbinRule{},
|
|
|
|
example.ExaFile{},
|
|
example.ExaCustomer{},
|
|
example.ExaFileChunk{},
|
|
example.ExaFileUploadAndDownload{},
|
|
example.ExaAttachmentCategory{},
|
|
|
|
model.Info{},
|
|
}
|
|
for _, t := range tables {
|
|
_ = db.AutoMigrate(&t)
|
|
// 视图 authority_menu 会被当成表来创建,引发冲突错误(更新版本的gorm似乎不会)
|
|
// 由于 AutoMigrate() 基本无需考虑错误,因此显式忽略
|
|
}
|
|
return ctx, nil
|
|
}
|
|
|
|
func (e *ensureTables) TableCreated(ctx context.Context) bool {
|
|
db, ok := ctx.Value("db").(*gorm.DB)
|
|
if !ok {
|
|
return false
|
|
}
|
|
tables := []interface{}{
|
|
sysModel.SysApi{},
|
|
sysModel.SysUser{},
|
|
sysModel.SysBaseMenu{},
|
|
sysModel.SysAuthority{},
|
|
sysModel.JwtBlacklist{},
|
|
sysModel.SysDictionary{},
|
|
sysModel.SysAutoCodeHistory{},
|
|
sysModel.SysOperationRecord{},
|
|
sysModel.SysDictionaryDetail{},
|
|
sysModel.SysBaseMenuParameter{},
|
|
sysModel.SysBaseMenuBtn{},
|
|
sysModel.SysAuthorityBtn{},
|
|
sysModel.SysAutoCodePackage{},
|
|
sysModel.SysExportTemplate{},
|
|
sysModel.Condition{},
|
|
sysModel.JoinTemplate{},
|
|
|
|
adapter.CasbinRule{},
|
|
|
|
example.ExaFile{},
|
|
example.ExaCustomer{},
|
|
example.ExaFileChunk{},
|
|
example.ExaFileUploadAndDownload{},
|
|
example.ExaAttachmentCategory{},
|
|
|
|
model.Info{},
|
|
}
|
|
yes := true
|
|
for _, t := range tables {
|
|
yes = yes && db.Migrator().HasTable(t)
|
|
}
|
|
return yes
|
|
}
|