refactor(database): 将数据库初始化逻辑从main函数移至server模块
- 从main.go中删除数据库相关导入和初始化代码 - 在server.go中添加数据库包导入 - 将initDatabase函数从main.go迁移至server.go - 在server的Run函数中调用数据库初始化逻辑 - 保持原有的数据库连接检查和错误处理机制main v1.0.2006
parent
0f878247de
commit
36426dcf2e
32
main.go
32
main.go
|
|
@ -2,7 +2,6 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"git.magicany.cc/black1552/gin-base/config"
|
"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/log"
|
||||||
"git.magicany.cc/black1552/gin-base/server"
|
"git.magicany.cc/black1552/gin-base/server"
|
||||||
)
|
)
|
||||||
|
|
@ -10,9 +9,6 @@ import (
|
||||||
// TIP <p>To run your response, right-click the response and select <b>Run</b>.</p> <p>Alternatively, click
|
// TIP <p>To run your response, right-click the response and select <b>Run</b>.</p> <p>Alternatively, click
|
||||||
// the <icon src="AllIcons.Actions.Execute"/> icon in the gutter and select the <b>Run</b> menu item from here.</p>
|
// the <icon src="AllIcons.Actions.Execute"/> icon in the gutter and select the <b>Run</b> menu item from here.</p>
|
||||||
func main() {
|
func main() {
|
||||||
// 初始化数据库连接
|
|
||||||
initDatabase()
|
|
||||||
|
|
||||||
g := server.New()
|
g := server.New()
|
||||||
cf, err := config.Unmarshal[config.BaseConfig]()
|
cf, err := config.Unmarshal[config.BaseConfig]()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -21,31 +17,3 @@ func main() {
|
||||||
log.Info("启动服务:", cf.Server.Addr)
|
log.Info("启动服务:", cf.Server.Addr)
|
||||||
server.Run(g)
|
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("数据库连接初始化成功")
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.magicany.cc/black1552/gin-base/config"
|
"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/log"
|
||||||
"git.magicany.cc/black1552/gin-base/middleware"
|
"git.magicany.cc/black1552/gin-base/middleware"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
@ -29,6 +30,34 @@ func New() *gin.Engine {
|
||||||
return g
|
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 启动服务
|
// Run 启动服务
|
||||||
// @Param *gin.Engine 路由实例
|
// @Param *gin.Engine 路由实例
|
||||||
// 设置监听挂壁
|
// 设置监听挂壁
|
||||||
|
|
@ -44,6 +73,7 @@ func Run(g *gin.Engine) {
|
||||||
MaxHeaderBytes: 20 * 1024 * 1024,
|
MaxHeaderBytes: 20 * 1024 * 1024,
|
||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
|
initDatabase()
|
||||||
if err := s.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
if err := s.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
||||||
// 检查是否是端口被占用的错误
|
// 检查是否是端口被占用的错误
|
||||||
if strings.Contains(err.Error(), "address already in use") ||
|
if strings.Contains(err.Error(), "address already in use") ||
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue