44 lines
1012 B
Go
44 lines
1012 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"infogenie-backend/config"
|
|
"infogenie-backend/internal/database"
|
|
"infogenie-backend/internal/router"
|
|
)
|
|
|
|
func main() {
|
|
cfg, err := config.Load()
|
|
if err != nil {
|
|
log.Fatalf("配置加载失败: %v", err)
|
|
}
|
|
|
|
log.Printf("InfoGenie Go Backend 启动中... [环境: %s, DB: %s:%s/%s]", cfg.Env, cfg.DB.Host, cfg.DB.Port, cfg.DB.Name)
|
|
|
|
if err := database.Init(cfg.DB); err != nil {
|
|
log.Fatalf("数据库初始化失败: %v", err)
|
|
}
|
|
|
|
if err := database.AutoMigrate(); err != nil {
|
|
log.Fatalf("数据库迁移失败: %v", err)
|
|
}
|
|
log.Println("数据库表自动迁移完成")
|
|
|
|
if cfg.Env == "production" {
|
|
gin.SetMode(gin.ReleaseMode)
|
|
}
|
|
|
|
r := gin.Default()
|
|
router.Setup(r)
|
|
|
|
addr := fmt.Sprintf("0.0.0.0:%s", cfg.Port)
|
|
log.Printf("🚀 InfoGenie 后端服务已启动: http://localhost:%s", cfg.Port)
|
|
if err := r.Run(addr); err != nil {
|
|
log.Fatalf("服务启动失败: %v", err)
|
|
}
|
|
}
|