package cmdutil import ( "context" "fmt" "os" "time" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgxpool" ) func NewDatabasePool(ctx context.Context, maxConns int) (*pgxpool.Pool, error) { if maxConns == 0 { maxConns = 1 } url := fmt.Sprintf("%s?pool_max_conns=%d&pool_min_conns=%d", os.Getenv("DATABASE_URL"), maxConns, 2) config, err := pgxpool.ParseConfig(url) if err != nil { return nil, err } config.ConnConfig.DefaultQueryExecMode = pgx.QueryExecModeSimpleProtocol config.MaxConnLifetime = 1 * time.Hour config.MaxConnIdleTime = 30 * time.Second return pgxpool.NewWithConfig(ctx, config) }