Files
arbeitszeitmessung/Backend/database.go
Tom Tröger 119c0c3b33
All checks were successful
GoLang Tests / Run Go Tests (push) Successful in 2m2s
GoLang Tests / Build Go Image and Upload (push) Successful in 2m34s
next try
2025-08-21 23:34:31 +02:00

36 lines
933 B
Go

package main
import (
"arbeitszeitmessung/helper"
"arbeitszeitmessung/models"
"database/sql"
"fmt"
"log"
"github.com/golang-migrate/migrate/v4"
_ "github.com/golang-migrate/migrate/v4/source/file"
)
func OpenDatabase() (models.IDatabase, error) {
dbHost := helper.GetEnv("POSTGRES_HOST", "localhost")
dbName := helper.GetEnv("POSTGRES_DB", "arbeitszeitmessung")
dbUser := helper.GetEnv("POSTGRES_API_USER", "api_nutzer")
dbPassword := helper.GetEnv("POSTGRES_API_PASS", "password")
connStr := fmt.Sprintf("postgres://%s:%s@%s:5432/%s?sslmode=disable&TimeZone=Europe/Berlin", dbUser, dbPassword, dbHost, dbName)
db, err := sql.Open("postgres", connStr)
if err != nil {
return nil, err
}
defer db.Close()
return db, err
}
func MigrateDB(db models.IDatabase, connStr string) {
m, err := migrate.New("file:///../migrations/", connStr)
if err != nil {
log.Fatalln("Error starting migration", err)
}
m.Up()
}