更新管理端迁移Mycontent-temp的菜单与布局规范,确保主导航收敛并优化隐藏页面入口。新增相关会议记录与文档,反映团队讨论的最新决策与实施建议。
This commit is contained in:
@@ -2,22 +2,51 @@ package database
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"soul-api/internal/model"
|
||||
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
var db *gorm.DB
|
||||
|
||||
// Init 使用 DSN 连接 MySQL,供 handler 通过 DB() 使用
|
||||
func Init(dsn string) error {
|
||||
// 慢查询阈值:默认 5 秒,避免 GORM 默认 200ms 导致控制台刷屏;可通过 SLOW_SQL_THRESHOLD_MS 覆盖
|
||||
slowMs := 5000
|
||||
if s := os.Getenv("SLOW_SQL_THRESHOLD_MS"); s != "" {
|
||||
if n, e := strconv.Atoi(s); e == nil && n > 0 {
|
||||
slowMs = n
|
||||
}
|
||||
}
|
||||
gormLogger := logger.New(
|
||||
log.New(os.Stdout, "\r\n", log.LstdFlags),
|
||||
logger.Config{
|
||||
SlowThreshold: time.Duration(slowMs) * time.Millisecond,
|
||||
IgnoreRecordNotFoundError: true,
|
||||
Colorful: true,
|
||||
},
|
||||
)
|
||||
|
||||
var err error
|
||||
db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{Logger: gormLogger})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
skipMigrate := strings.ToLower(strings.TrimSpace(os.Getenv("SKIP_AUTO_MIGRATE")))
|
||||
if skipMigrate == "1" || skipMigrate == "true" || skipMigrate == "yes" {
|
||||
log.Println("database: SKIP_AUTO_MIGRATE enabled, skipping schema migration")
|
||||
log.Println("database: connected")
|
||||
return nil
|
||||
}
|
||||
|
||||
if err := db.AutoMigrate(&model.WechatCallbackLog{}); err != nil {
|
||||
log.Printf("database: wechat_callback_logs migrate warning: %v", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user