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 }