From 47cd27c9689c4af5b1f7c5578b161d465a66bc3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Wed, 31 May 2023 22:08:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(db):=E5=AE=8C=E6=88=90=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E8=BF=9E=E6=8E=A5=E9=85=8D=E7=BD=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- global/db.go | 44 ++++++++++++++++++++------------------------ 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/global/db.go b/global/db.go index 6ed62cd..1acdc74 100644 --- a/global/db.go +++ b/global/db.go @@ -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