You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

32 lines
895 B

package model
import (
"godocms/pkg/db"
"log"
"gorm.io/gorm"
)
func AutoMigrate() error {
db.DB.AutoMigrate(&User{})
// 使用 GORM 的 CreateIndex 方法
// createIndexIfNotExists(db.DB, &User{}, "username", "idx_user_username")
// createIndexIfNotExists(db.DB, &User{}, "email", "idx_user_email")
// createIndexIfNotExists(db.DB, &User{}, "phone", "idx_user_phone")
db.DB.AutoMigrate(&UserRole{})
db.DB.AutoMigrate(&UserDept{})
db.DB.AutoMigrate(&UserThird{})
if err := EnsureDefaultUserRoleExists(); err != nil {
log.Fatalf("初始化用户角色失败: %v", err)
}
return nil
}
func CreateIndexIfNotExists(Db *gorm.DB, model interface{}, field, indexName string) {
if db.AppConfig.DBType != "mongodb" {
return
}
err := Db.Migrator().CreateIndex(model, indexName)
if err != nil {
log.Printf("Failed to create index %s for field %s: %v", indexName, field, err)
}
}