Files
llink/go/internal/db/connect.go
T
2026-02-21 08:48:34 -08:00

45 lines
797 B
Go

package db
import (
"context"
"log/slog"
"os"
"github.com/jackc/pgx/v5/pgxpool"
)
var db *pgxpool.Pool
func Cleanup() {
db.Close()
}
func Pool() *pgxpool.Pool {
return db
}
func Init() {
connString := os.Getenv("LLINK_POSTGRES_CONNECTION_URL")
if connString == "" {
slog.Error("must provide LLINK_POSTGRES_CONNECTION_URL in env")
os.Exit(1)
}
dbpool, err := pgxpool.New(context.Background(), connString)
if err != nil {
slog.Error("unable to create connection pool", "error", err)
os.Exit(1)
}
var greeting string
err = dbpool.QueryRow(context.Background(), "select 'Hello, world!'").Scan(&greeting)
if err != nil {
slog.Error("queryRow failed", "error", err)
os.Exit(1)
}
slog.Info("successfully connected to database", "greeting", greeting)
db = dbpool
}