fix(db):完成数据库连接配置。
This commit is contained in:
parent
0d5457fca3
commit
47cd27c968
44
global/db.go
44
global/db.go
|
@ -3,13 +3,11 @@ package global
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
|
||||||
|
|
||||||
"electricity_bill_calc/config"
|
"electricity_bill_calc/config"
|
||||||
"electricity_bill_calc/logger"
|
"electricity_bill_calc/logger"
|
||||||
|
|
||||||
"github.com/jackc/pgx/v5"
|
"github.com/jackc/pgx/v5"
|
||||||
"github.com/jackc/pgx/v5/pgconn"
|
|
||||||
"github.com/jackc/pgx/v5/pgxpool"
|
"github.com/jackc/pgx/v5/pgxpool"
|
||||||
"github.com/samber/lo"
|
"github.com/samber/lo"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
@ -20,29 +18,27 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
func SetupDatabaseConnection() error {
|
func SetupDatabaseConnection() error {
|
||||||
connConfig := &pgx.ConnConfig{
|
connString := fmt.Sprintf(
|
||||||
Config: pgconn.Config{
|
"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",
|
||||||
Host: config.DatabaseSettings.Host,
|
config.DatabaseSettings.User,
|
||||||
Port: uint16(config.DatabaseSettings.Port),
|
config.DatabaseSettings.Pass,
|
||||||
User: config.DatabaseSettings.User,
|
config.DatabaseSettings.Host,
|
||||||
Password: config.DatabaseSettings.Pass,
|
config.DatabaseSettings.Port,
|
||||||
Database: config.DatabaseSettings.DB,
|
config.DatabaseSettings.DB,
|
||||||
TLSConfig: nil,
|
0,
|
||||||
ConnectTimeout: 0 * time.Second,
|
"elec_service_go",
|
||||||
RuntimeParams: map[string]string{"application_name": "elec_service_go"},
|
config.DatabaseSettings.MaxOpenConns,
|
||||||
},
|
config.DatabaseSettings.MaxIdleConns,
|
||||||
Tracer: QueryLogger{
|
"60m",
|
||||||
logger: logger.Named("PG"),
|
"10m",
|
||||||
},
|
"10s",
|
||||||
}
|
)
|
||||||
poolConfig := &pgxpool.Config{
|
poolConfig, err := pgxpool.ParseConfig(connString)
|
||||||
ConnConfig: connConfig,
|
if err != nil {
|
||||||
MaxConnLifetime: 60 * time.Minute,
|
logger.Named("DB INIT").Error("数据库连接初始化失败。", zap.Error(err))
|
||||||
MaxConnIdleTime: 10 * time.Minute,
|
return err
|
||||||
HealthCheckPeriod: 10 * time.Second,
|
|
||||||
MaxConns: int32(config.DatabaseSettings.MaxOpenConns),
|
|
||||||
MinConns: int32(config.DatabaseSettings.MaxIdleConns),
|
|
||||||
}
|
}
|
||||||
|
poolConfig.ConnConfig.Tracer = QueryLogger{logger: logger.Named("PG")}
|
||||||
DB, _ = pgxpool.NewWithConfig(context.Background(), poolConfig)
|
DB, _ = pgxpool.NewWithConfig(context.Background(), poolConfig)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue
Block a user