This commit is contained in:
2026-09-03 17:55:42 +08:00
parent 7c38e84e30
commit c80a3d4a2d
35 changed files with 6795 additions and 597 deletions
+23 -8
View File
@@ -1,6 +1,7 @@
package main
import (
"flag"
"log"
"photowall/internal/config"
"photowall/internal/database"
@@ -16,11 +17,17 @@ import (
)
func main() {
migrateFlag := flag.Bool("migrate", false, "执行数据库迁移与种子数据初始化 (AutoMigrate)")
flag.Parse()
// 1. 加载配置
cfg := config.Load()
log.Printf("[config] port=%s db=%s@%s:%s/%s", cfg.Port, cfg.DBUser, cfg.DBHost, cfg.DBPort, cfg.DBName)
if *migrateFlag {
cfg.DBAutoMigrate = true
}
log.Printf("[config] port=%s db=%s@%s:%s/%s auto_migrate=%v", cfg.Port, cfg.DBUser, cfg.DBHost, cfg.DBPort, cfg.DBName, cfg.DBAutoMigrate)
// 2. 初始化数据库(连接 + 自动迁移 + 管理员 + 种子数据)
// 2. 初始化数据库(连接 MySQL;仅在开启 auto_migrate 时迁移和播种)
if err := database.Init(); err != nil {
log.Fatalf("[database] init failed: %v", err)
}
@@ -38,9 +45,14 @@ func main() {
// 4. 初始化 Service
configSvc := service.NewConfigService(database.DB)
// 初始化系统默认配置
if err := configSvc.InitDefaults(); err != nil {
log.Printf("[config] init defaults failed: %v", err)
if cfg.DBAutoMigrate {
// 初始化系统默认配置(逐条检测并补齐)
if err := configSvc.InitDefaults(); err != nil {
log.Printf("[config] init defaults failed: %v", err)
}
} else {
// 快速预热配置缓存(单次全量查询,跳过逐条校验)
configSvc.WarmUpCache()
}
authSvc := service.NewAuthService(database.DB, jm, configSvc)
@@ -50,9 +62,12 @@ func main() {
classSvc := service.NewClassService(database.DB, configSvc)
adminSvc := service.NewAdminService(database.DB)
menuSvc := service.NewMenuService(database.DB)
// 初始化默认菜单
if err := menuSvc.InitDefaults(); err != nil {
log.Printf("[menu] init defaults failed: %v", err)
if cfg.DBAutoMigrate {
// 初始化默认菜单(逐条检测并补齐)
if err := menuSvc.InitDefaults(); err != nil {
log.Printf("[menu] init defaults failed: %v", err)
}
}
// 初始化敏感词过滤器
sensitive.Init(database.DB)