diff --git a/main.go b/main.go
index bfb29c1..ff43765 100644
--- a/main.go
+++ b/main.go
@@ -2,7 +2,6 @@ package main
import (
"git.magicany.cc/black1552/gin-base/config"
- "git.magicany.cc/black1552/gin-base/database"
"git.magicany.cc/black1552/gin-base/log"
"git.magicany.cc/black1552/gin-base/server"
)
@@ -10,9 +9,6 @@ import (
// TIP
To run your response, right-click the response and select Run.
Alternatively, click
// the icon in the gutter and select the Run menu item from here.
func main() {
- // 初始化数据库连接
- initDatabase()
-
g := server.New()
cf, err := config.Unmarshal[config.BaseConfig]()
if err != nil {
@@ -21,31 +17,3 @@ func main() {
log.Info("启动服务:", cf.Server.Addr)
server.Run(g)
}
-
-// initDatabase 初始化数据库连接
-func initDatabase() {
- // 检查是否配置了数据库
- dbConfig := config.GetConfigValue("database")
- if dbConfig.IsEmpty() {
- log.Warn("未配置数据库,跳过数据库初始化")
- return
- }
-
- log.Info("正在初始化数据库连接...")
- defer func() {
- if err := recover(); err != nil {
- log.Error("数据库初始化失败:", err)
- return
- }
- }()
-
- // 调用 database 包的 Database 函数进行初始化
- // 这会自动读取配置、创建连接池、设置日志器等
- db := database.Database()
- if db == nil {
- log.Error("数据库实例创建失败")
- return
- }
-
- log.Info("数据库连接初始化成功")
-}
diff --git a/server/server.go b/server/server.go
index 468c069..72d5c33 100644
--- a/server/server.go
+++ b/server/server.go
@@ -12,6 +12,7 @@ import (
"time"
"git.magicany.cc/black1552/gin-base/config"
+ "git.magicany.cc/black1552/gin-base/database"
"git.magicany.cc/black1552/gin-base/log"
"git.magicany.cc/black1552/gin-base/middleware"
"github.com/gin-gonic/gin"
@@ -29,6 +30,34 @@ func New() *gin.Engine {
return g
}
+// initDatabase 初始化数据库连接
+func initDatabase() {
+ // 检查是否配置了数据库
+ dbConfig := config.GetConfigValue("database")
+ if dbConfig.IsEmpty() {
+ log.Warn("未配置数据库,跳过数据库初始化")
+ return
+ }
+
+ log.Info("正在初始化数据库连接...")
+ defer func() {
+ if err := recover(); err != nil {
+ log.Error("数据库初始化失败:", err)
+ return
+ }
+ }()
+
+ // 调用 database 包的 Database 函数进行初始化
+ // 这会自动读取配置、创建连接池、设置日志器等
+ db := database.Database()
+ if db == nil {
+ log.Error("数据库实例创建失败")
+ return
+ }
+
+ log.Info("数据库连接初始化成功")
+}
+
// Run 启动服务
// @Param *gin.Engine 路由实例
// 设置监听挂壁
@@ -44,6 +73,7 @@ func Run(g *gin.Engine) {
MaxHeaderBytes: 20 * 1024 * 1024,
}
go func() {
+ initDatabase()
if err := s.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
// 检查是否是端口被占用的错误
if strings.Contains(err.Error(), "address already in use") ||