portfolio/database/database.go

43 lines
1.0 KiB
Go
Raw Permalink Normal View History

package database
import (
"context"
2024-05-16 17:22:17 +02:00
"fmt"
"log"
"os"
2024-05-16 17:36:44 +02:00
"portfolio/database/ent"
2024-05-16 17:22:17 +02:00
"strconv"
2024-05-16 17:22:17 +02:00
_ "github.com/lib/pq"
)
var Client *ent.Client
func DB() {
2025-05-07 22:33:21 +02:00
log.Println("Connecting to database")
err := *new(error)
2024-05-16 17:22:17 +02:00
port, parseError := strconv.ParseInt(os.Getenv("POSTGRES_PORT"), 10, 32)
if parseError != nil {
log.Fatalf("failed parsing .env -> port: %v", parseError)
}
var host = os.Getenv("POSTGRES_HOST")
var user = os.Getenv("POSTGRES_USER")
var dbname = os.Getenv("POSTGRES_DB")
var password = os.Getenv("POSTGRES_PASSWORD")
var ssl = os.Getenv("SSL_MODE")
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=%s",
host, port, user, password, dbname, ssl)
Client, err = ent.Open("postgres", psqlInfo)
if err != nil {
2024-05-16 17:22:17 +02:00
log.Fatalf("failed opening connection to postgres: %v", err)
}
// Run the auto migration tool.
if err := Client.Schema.Create(context.Background()); err != nil {
log.Fatalf("failed creating schema resources: %v", err)
}
2024-05-16 17:22:17 +02:00
log.Println("Successfully connected to Postgres database!")
}