mirror of https://gitee.com/godoos/godoos.git
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
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)
|
|
}
|
|
}
|
|
|