feat(go): use single db handle; use connection pool;

This commit is contained in:
Vishal Dalwadi
2025-06-06 15:26:23 +05:30
parent 0b03b2cdbf
commit 48957c02fa
3 changed files with 32 additions and 25 deletions

View File

@@ -1,9 +1,12 @@
package database
import (
"context"
"database/sql"
"errors"
"fmt"
"github.com/gravitl/netmaker/db"
"time"
"github.com/gravitl/netmaker/servercfg"
_ "github.com/lib/pq"
@@ -34,15 +37,18 @@ func getPGConnString() string {
}
func initPGDB() error {
connString := getPGConnString()
gormDB := db.FromContext(db.WithContext(context.TODO()))
var dbOpenErr error
PGDB, dbOpenErr = sql.Open("postgres", connString)
PGDB, dbOpenErr = gormDB.DB()
if dbOpenErr != nil {
return dbOpenErr
}
dbOpenErr = PGDB.Ping()
return dbOpenErr
PGDB.SetMaxOpenConns(5)
PGDB.SetConnMaxLifetime(time.Hour)
return PGDB.Ping()
}
func pgCreateTable(tableName string) error {
@@ -134,7 +140,7 @@ func pgFetchRecords(tableName string) (map[string]string, error) {
}
func pgCloseDB() {
PGDB.Close()
//PGDB.Close()
}
func pgIsConnected() bool {