This commit is contained in:
vipg
2025-11-11 14:16:29 +08:00
parent f67235f9a6
commit 88295d9ac7
22 changed files with 1227 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
package db
import (
"database/sql"
"fmt"
"os"
_ "github.com/lib/pq"
"go.uber.org/zap"
)
var DB *sql.DB
// 初始化数据库连接
func Init() {
// 从环境变量获取数据库配置
dbHost := os.Getenv("DB_HOST")
dbPort := os.Getenv("DB_PORT")
dbUser := os.Getenv("DB_USER")
dbPassword := os.Getenv("DB_PASSWORD")
dbName := os.Getenv("DB_NAME")
zap.L().Info(
"💡 读取数据库配置",
zap.String("host", dbHost), // key: "host", value: dbHoststring类型
zap.String("port", dbPort), // key: "port", value: dbPortstring类型
zap.String("user", dbUser), // key: "user", value: dbUserstring类型
zap.String("dbname", dbName), // key: "dbname", value: dbNamestring类型
)
// 构建数据库连接字符串
connStr := fmt.Sprintf(
"host=%s port=%s user=%s password=%s dbname=%s sslmode=disable",
dbHost, dbPort, dbUser, dbPassword, dbName,
)
var err error
DB, err = sql.Open("postgres", connStr)
if err != nil {
zap.L().Panic("❌ 无法连接数据库", zap.Error(err))
}
defer DB.Close()
zap.L().Info("✅ 数据库连接对象创建成功")
// 验证数据库连接
if err := DB.Ping(); err != nil {
zap.L().Panic("❌ 数据库连接失败", zap.Error(err))
}
zap.L().Info("✅ 数据库连接验证成功")
}