omnix-sopiga/framework/db/pool.go

31 lines
598 B
Go
Raw Normal View History

2026-08-07 12:21:42 +07:00
package db
import (
"context"
"time"
"github.com/jackc/pgx/v5/pgxpool"
)
type Config struct {
DSN string
MaxConns int32
MinConns int32
MaxConnLifetime time.Duration
MaxConnIdleTime time.Duration
}
func NewPool(ctx context.Context, cfg Config) (*pgxpool.Pool, error) {
poolCfg, err := pgxpool.ParseConfig(cfg.DSN)
if err != nil {
return nil, err
}
poolCfg.MaxConns = cfg.MaxConns
poolCfg.MinConns = cfg.MinConns
poolCfg.MaxConnLifetime = cfg.MaxConnLifetime
poolCfg.MaxConnIdleTime = cfg.MaxConnIdleTime
return pgxpool.NewWithConfig(ctx, poolCfg)
}