refactor(models): Remove TableName methods and use global table prefix

- Add DB.Prefix "vb_" to cfg.DB config for global table prefix
    - Remove TableName() methods from all models (User, Role, Permission, etc.)
    - Remove Role.Scope field and its unique index with Code
    - Let GORM auto-generate table names with configured prefix
master
veypi 3 weeks ago
parent bc060e23a6
commit e83444df4c

@ -53,8 +53,9 @@ type InitAdminConfig struct {
// Global全局配置实例
var Global = &Options{
DB: config.Database{
Type: "mysql",
DSN: "root:123456@tcp(127.0.0.1:3306)/vbase?charset=utf8&parseTime=True&loc=Local",
Type: "mysql",
Prefix: "vb_",
DSN: "root:123456@tcp(127.0.0.1:3306)/vbase?charset=utf8&parseTime=True&loc=Local",
},
Redis: config.Redis{
Addr: "memory",
@ -63,7 +64,7 @@ var Global = &Options{
StoragePath: "./data",
JWT: JWTConfig{
Secret: "",
AccessExpiry: time.Hour,
AccessExpiry: time.Hour * 24,
RefreshExpiry: 30 * 24 * time.Hour,
Issuer: "vbase",
},

@ -36,25 +36,16 @@ type Permission struct {
Role *Role `json:"role,omitempty" gorm:"foreignKey:RoleID;references:ID"`
}
func (Permission) TableName() string {
return "permissions"
}
// Role 角色表
type Role struct {
vigo.Model
Scope string `json:"scope" gorm:"uniqueIndex:idx_role_scope_code;size:50;default:'default'" desc:"作用域"`
Code string `json:"code" gorm:"uniqueIndex:idx_role_scope_code;size:50" desc:"角色代码"`
Code string `json:"code" gorm:"uniqueIndex;size:50" desc:"角色代码"`
Name string `json:"name" desc:"角色名称"`
Description string `json:"description" desc:"角色描述"`
IsSystem bool `json:"is_system" desc:"是否系统预设角色"`
Status int `json:"status" gorm:"default:1" desc:"状态: 1=启用, 0=禁用"`
}
func (Role) TableName() string {
return "roles"
}
// UserRole 用户角色关联表
type UserRole struct {
vigo.Model
@ -67,10 +58,6 @@ type UserRole struct {
Role Role `json:"role,omitempty" gorm:"foreignKey:RoleID;references:ID"`
}
func (UserRole) TableName() string {
return "user_roles"
}
// GrantRoleRequest 授予角色请求
type GrantRoleRequest struct {
Scope string `json:"scope" desc:"作用域"`

@ -22,7 +22,3 @@ type EmailLog struct {
MessageID string `gorm:"size:100" json:"message_id"`
}
// TableName 表名
func (EmailLog) TableName() string {
return "email_logs"
}

@ -28,10 +28,6 @@ type OAuthClient struct {
Owner User `json:"owner,omitempty" gorm:"foreignKey:OwnerID;references:ID"`
}
func (OAuthClient) TableName() string {
return "oauth_clients"
}
// OAuthAuthorizationCode OAuth2.0 授权码
type OAuthAuthorizationCode struct {
vigo.Model
@ -50,10 +46,6 @@ type OAuthAuthorizationCode struct {
User User `json:"user,omitempty" gorm:"foreignKey:UserID;references:ID"`
}
func (OAuthAuthorizationCode) TableName() string {
return "oauth_authorization_codes"
}
// OAuthToken OAuth2.0 令牌
type OAuthToken struct {
vigo.Model
@ -71,10 +63,6 @@ type OAuthToken struct {
User User `json:"user,omitempty" gorm:"foreignKey:UserID;references:ID"`
}
func (OAuthToken) TableName() string {
return "oauth_tokens"
}
// OAuthClientStatus 客户端状态
const (
OAuthClientStatusDisabled = 0

@ -41,11 +41,6 @@ type OAuthProvider struct {
IsBuiltIn bool `json:"is_built_in" gorm:"default:false"`
}
// TableName 表名
func (OAuthProvider) TableName() string {
return "oauth_providers"
}
// OAuthProviderExtra 常用特殊配置键
const (
OAuthExtraAppIDParam = "appid_param" // 微信: appid 参数名不同

@ -26,11 +26,6 @@ type Setting struct {
UpdatedBy string `gorm:"size:36" json:"updated_by"`
}
// TableName 表名
func (Setting) TableName() string {
return "settings"
}
// 配置分类常量
const (
SettingCategoryAuth = "auth"

@ -27,11 +27,6 @@ type User struct {
LastLoginAt *time.Time `json:"last_login_at"`
}
// TableName 表名
func (User) TableName() string {
return "users"
}
// Identity 第三方身份绑定
type Identity struct {
vigo.Model
@ -49,10 +44,6 @@ type Identity struct {
User User `json:"user,omitempty" gorm:"foreignKey:UserID;references:ID"`
}
func (Identity) TableName() string {
return "identities"
}
// Session 登录会话
type Session struct {
vigo.Model
@ -69,10 +60,6 @@ type Session struct {
User User `json:"user,omitempty" gorm:"foreignKey:UserID;references:ID"`
}
func (Session) TableName() string {
return "sessions"
}
// UserStatus 用户状态常量
const (
UserStatusDisabled = 0

@ -27,11 +27,6 @@ type VerificationCode struct {
RemoteIP string `gorm:"size:50" json:"remote_ip"`
}
// TableName 表名
func (VerificationCode) TableName() string {
return "verification_codes"
}
// CodeStatus 验证码状态
type CodeStatus int

Loading…
Cancel
Save