refactor: reuse constants for redis db
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user