postgresql.go 641 B

12345678910111213141516171819202122232425
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. package database // import "miniflux.app/v2/internal/database"
  4. import (
  5. "database/sql"
  6. "time"
  7. _ "github.com/lib/pq"
  8. )
  9. // NewConnectionPool configures the database connection pool.
  10. func NewConnectionPool(dsn string, minConnections, maxConnections int, connectionLifetime time.Duration) (*sql.DB, error) {
  11. db, err := sql.Open("postgres", dsn)
  12. if err != nil {
  13. return nil, err
  14. }
  15. db.SetMaxOpenConns(maxConnections)
  16. db.SetMaxIdleConns(minConnections)
  17. db.SetConnMaxLifetime(connectionLifetime)
  18. return db, nil
  19. }