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() }