qoder生成项目
This commit is contained in:
63
database/database.go
Normal file
63
database/database.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"goblog/config"
|
||||
"goblog/models"
|
||||
"log"
|
||||
|
||||
"github.com/glebarez/sqlite"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
var DB *gorm.DB
|
||||
|
||||
func Init(cfg *config.DatabaseConfig) error {
|
||||
var err error
|
||||
|
||||
DB, err = gorm.Open(sqlite.Open(cfg.DSN), &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Info),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 自动迁移
|
||||
err = DB.AutoMigrate(
|
||||
&models.User{},
|
||||
&models.Post{},
|
||||
&models.Category{},
|
||||
&models.Tag{},
|
||||
&models.Comment{},
|
||||
&models.Page{},
|
||||
&models.Option{},
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Println("数据库连接成功")
|
||||
return nil
|
||||
}
|
||||
|
||||
// 创建默认管理员
|
||||
func CreateDefaultAdmin() error {
|
||||
var count int64
|
||||
DB.Model(&models.User{}).Where("role = ?", "admin").Count(&count)
|
||||
|
||||
if count == 0 {
|
||||
admin := &models.User{
|
||||
Username: "admin",
|
||||
Password: "$2a$10$XrrWkDB.DIpuXOYYrMiZdOBpl0gxrtziSCQ4OOnGFP10C8.xF30qq", // admin123
|
||||
Nickname: "管理员",
|
||||
Email: "admin@example.com",
|
||||
Role: "admin",
|
||||
Status: 1,
|
||||
}
|
||||
if err := DB.Create(admin).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
log.Println("默认管理员创建成功,用户名: admin,密码: admin123")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user