update: 2026-03-28 20:59

This commit is contained in:
2026-03-28 20:59:52 +08:00
parent e21d58e603
commit 1c81d4e6ea
611 changed files with 27847 additions and 65061 deletions

View File

@@ -0,0 +1,57 @@
package database
import (
"fmt"
"log"
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"infogenie-backend/config"
"infogenie-backend/internal/model"
)
var DB *gorm.DB
func Init(cfg config.DBConfig) error {
logLevel := logger.Warn
if config.Cfg.Env == "development" {
logLevel = logger.Info
}
db, err := gorm.Open(mysql.Open(cfg.DSN()), &gorm.Config{
Logger: logger.Default.LogMode(logLevel),
})
if err != nil {
return fmt.Errorf("连接MySQL失败: %w", err)
}
sqlDB, err := db.DB()
if err != nil {
return fmt.Errorf("获取底层DB连接失败: %w", err)
}
sqlDB.SetMaxOpenConns(25)
sqlDB.SetMaxIdleConns(10)
sqlDB.SetConnMaxLifetime(5 * time.Minute)
if err := sqlDB.Ping(); err != nil {
return fmt.Errorf("Ping数据库失败: %w", err)
}
DB = db
log.Printf("MySQL连接成功 [env=%s]: %s:%s/%s", config.Cfg.Env, cfg.Host, cfg.Port, cfg.Name)
return nil
}
func AutoMigrate() error {
return DB.AutoMigrate(
&model.AIConfig{},
&model.Site60sDisabled{},
&model.SiteAIRuntime{},
&model.Site60sUpstream{},
&model.SiteAIModelDisabled{},
)
}