init
This commit is contained in:
39
app/internal/infr/db/pgx.go
Normal file
39
app/internal/infr/db/pgx.go
Normal file
@ -0,0 +1,39 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgxpool"
|
||||
)
|
||||
|
||||
var Pool *pgxpool.Pool
|
||||
|
||||
func Connect() error {
|
||||
dsn := fmt.Sprintf(
|
||||
"postgres://%s:%s@%s:%s/%s?sslmode=disable",
|
||||
os.Getenv("DB_USER"),
|
||||
os.Getenv("DB_PASSWORD"),
|
||||
os.Getenv("DB_HOST"),
|
||||
os.Getenv("DB_PORT"),
|
||||
os.Getenv("DB_NAME"),
|
||||
)
|
||||
|
||||
c, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
pool, err := pgxpool.New(c, dsn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := pool.Ping(c); err != nil {
|
||||
pool.Close()
|
||||
return err
|
||||
}
|
||||
|
||||
Pool = pool
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user