added Migrate Function for tests
Some checks failed
GoLang Tests / check and test (push) Failing after 24s

This commit is contained in:
2025-08-21 15:00:25 +02:00
parent cbdd82b725
commit 5c243e45e1
4 changed files with 63 additions and 2 deletions

View File

@@ -1,10 +1,17 @@
package models_test
import (
"arbeitszeitmessung/helper"
"arbeitszeitmessung/models"
"database/sql"
"fmt"
"log"
"testing"
"github.com/golang-migrate/migrate/v4"
"github.com/golang-migrate/migrate/v4/database/postgres"
_ "github.com/golang-migrate/migrate/v4/database/postgres"
_ "github.com/golang-migrate/migrate/v4/source/file"
_ "github.com/lib/pq"
)
@@ -16,11 +23,24 @@ type DBFixture struct {
func SetupDBFixture(t *testing.T) *DBFixture {
t.Helper()
db, err := sql.Open("postgres", "postgres://postgres:password@localhost:5433/arbeitszeitmessung?sslmode=disable")
dbHost := helper.GetEnv("POSTGRES_HOST", "localhost")
dbPort := helper.GetEnv("POSTGRES_PORT", "5433")
dbName := helper.GetEnv("POSTGRES_DB", "arbeitszeitmessung")
dbUser := helper.GetEnv("POSTGRES_USER", "postgres")
dbPassword := helper.GetEnv("POSTGRES_PASSWORD", "password")
connStr := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=disable&TimeZone=Europe/Berlin", dbUser, dbPassword, dbHost, dbPort, dbName)
db, err := sql.Open("postgres", connStr)
if err != nil {
t.Fatalf("failed to connect to database: %v", err)
}
err = MigrateDB(db, "file://../../migrations")
if err != nil && err != migrate.ErrNoChange {
t.Fatalf("Failed to migrate database: %v", err)
}
tx, err := db.Begin()
if err != nil {
t.Fatalf("Failed to start transaction: %v", err)
@@ -36,3 +56,14 @@ func SetupDBFixture(t *testing.T) *DBFixture {
TX: tx,
}
}
func MigrateDB(db *sql.DB, fileUrl string) error {
driver, err := postgres.WithInstance(db, &postgres.Config{})
if err != nil {
log.Fatalln("Error starting migration", err)
}
m, err := migrate.NewWithDatabaseInstance(
fileUrl,
"postgres", driver)
return m.Up()
}