fix(db):完成数据库连接配置。

This commit is contained in:
徐涛 2023-05-31 22:08:08 +08:00
parent 0d5457fca3
commit 47cd27c968

View File

@ -3,13 +3,11 @@ package global
import (
"context"
"fmt"
"time"
"electricity_bill_calc/config"
"electricity_bill_calc/logger"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgconn"
"github.com/jackc/pgx/v5/pgxpool"
"github.com/samber/lo"
"go.uber.org/zap"
@ -20,29 +18,27 @@ var (
)
func SetupDatabaseConnection() error {
connConfig := &pgx.ConnConfig{
Config: pgconn.Config{
Host: config.DatabaseSettings.Host,
Port: uint16(config.DatabaseSettings.Port),
User: config.DatabaseSettings.User,
Password: config.DatabaseSettings.Pass,
Database: config.DatabaseSettings.DB,
TLSConfig: nil,
ConnectTimeout: 0 * time.Second,
RuntimeParams: map[string]string{"application_name": "elec_service_go"},
},
Tracer: QueryLogger{
logger: logger.Named("PG"),
},
}
poolConfig := &pgxpool.Config{
ConnConfig: connConfig,
MaxConnLifetime: 60 * time.Minute,
MaxConnIdleTime: 10 * time.Minute,
HealthCheckPeriod: 10 * time.Second,
MaxConns: int32(config.DatabaseSettings.MaxOpenConns),
MinConns: int32(config.DatabaseSettings.MaxIdleConns),
connString := fmt.Sprintf(
"postgres://%s:%s@%s:%d/%s?sslmode=disable&connect_timeout=%d&application_name=%s&pool_max_conns=%d&pool_min_conns=%d&pool_max_conn_lifetime=%s&pool_max_conn_idle_time=%s&pool_health_check_period=%s",
config.DatabaseSettings.User,
config.DatabaseSettings.Pass,
config.DatabaseSettings.Host,
config.DatabaseSettings.Port,
config.DatabaseSettings.DB,
0,
"elec_service_go",
config.DatabaseSettings.MaxOpenConns,
config.DatabaseSettings.MaxIdleConns,
"60m",
"10m",
"10s",
)
poolConfig, err := pgxpool.ParseConfig(connString)
if err != nil {
logger.Named("DB INIT").Error("数据库连接初始化失败。", zap.Error(err))
return err
}
poolConfig.ConnConfig.Tracer = QueryLogger{logger: logger.Named("PG")}
DB, _ = pgxpool.NewWithConfig(context.Background(), poolConfig)
return nil