package database import ( "fmt" "github.com/AFASystems/presence/internal/pkg/config" "github.com/AFASystems/presence/internal/pkg/model" "gorm.io/driver/postgres" "gorm.io/gorm" ) var DB *gorm.DB func Connect(cfg *config.Config) (*gorm.DB, error) { // Connect to PostgreSQL database dsn := fmt.Sprintf( "host=%s user=%s password=%s dbname=%s port=5432 sslmode=disable", cfg.DBHost, cfg.DBUser, cfg.DBPass, cfg.DBName, ) db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { return nil, err } if err := db.AutoMigrate(&model.Gateway{}, model.Zone{}, model.TrackerZones{}, model.Tracker{}, model.Config{}, model.Settings{}); err != nil { return nil, err } fmt.Println("Database connection established") return db, nil }