Files

39 lines
1.2 KiB
Go
Raw Permalink Normal View History

2026-08-14 13:17:03 +08:00
// 像素游戏厅后端入口:加载配置 → 连接数据库 → 启动 HTTP/WebSocket 服务
package main
import (
"fmt"
"log"
"nl-game-api-gin/internal/config"
"nl-game-api-gin/internal/database"
"nl-game-api-gin/internal/router"
)
func main() {
// 加载 config.yaml端口、数据库、JWT、AI Key
if err := config.Load("config.yaml"); err != nil {
log.Fatalln("配置加载失败:", err)
}
// 初始化 MySQL 连接
if err := database.Init(); err != nil {
log.Fatalln("数据库初始化失败:", err)
}
// 仅开发模式go run 启动)自动补建缺失的表;
// go build 打包后的二进制绝不迁移,生产库结构变更一律手动执行 sql/ 脚本
if database.IsDevRun() {
if err := database.AutoMigrateMissing(); err != nil {
log.Fatalln("dev 自动建表失败:", err)
}
} else {
log.Println("生产模式:跳过表结构迁移(结构变更请手动执行 sql/ 脚本)")
}
// 启动服务
engine := router.Setup()
addr := fmt.Sprintf(":%d", config.C.Server.Port)
log.Println("后端服务已启动,监听", addr)
if err := engine.Run(addr); err != nil {
log.Fatalln("服务启动失败:", err)
}
}