2024-02-14 14:55:41 +01:00
|
|
|
package database
|
2024-02-14 00:08:14 +01:00
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
2024-05-16 17:22:17 +02:00
|
|
|
"fmt"
|
2024-02-14 00:08:14 +01:00
|
|
|
"log"
|
|
|
|
|
"os"
|
2024-05-16 17:36:44 +02:00
|
|
|
"portfolio/database/ent"
|
2024-05-16 17:22:17 +02:00
|
|
|
"strconv"
|
2024-02-14 00:08:14 +01:00
|
|
|
|
2024-05-16 17:22:17 +02:00
|
|
|
_ "github.com/lib/pq"
|
2024-02-14 00:08:14 +01:00
|
|
|
)
|
|
|
|
|
|
2024-03-13 14:39:10 +01:00
|
|
|
var Client *ent.Client
|
2024-02-15 10:04:05 +01:00
|
|
|
|
2024-02-14 00:08:14 +01:00
|
|
|
func DB() {
|
2025-05-07 22:33:21 +02:00
|
|
|
log.Println("Connecting to database")
|
2024-03-13 14:39:10 +01:00
|
|
|
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)
|
2024-02-14 00:08:14 +01:00
|
|
|
if err != nil {
|
2024-05-16 17:22:17 +02:00
|
|
|
log.Fatalf("failed opening connection to postgres: %v", err)
|
2024-02-14 00:08:14 +01:00
|
|
|
}
|
|
|
|
|
// Run the auto migration tool.
|
2024-03-13 14:39:10 +01:00
|
|
|
if err := Client.Schema.Create(context.Background()); err != nil {
|
2024-02-14 00:08:14 +01:00
|
|
|
log.Fatalf("failed creating schema resources: %v", err)
|
|
|
|
|
}
|
2024-05-16 17:22:17 +02:00
|
|
|
log.Println("Successfully connected to Postgres database!")
|
2024-02-14 00:08:14 +01:00
|
|
|
}
|