更新
This commit is contained in:
+23
-8
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user