You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

36 rivejä
773 B

  1. package database
  2. import (
  3. "fmt"
  4. "github.com/AFASystems/presence/internal/pkg/config"
  5. "github.com/AFASystems/presence/internal/pkg/model"
  6. "gorm.io/driver/postgres"
  7. "gorm.io/gorm"
  8. )
  9. var DB *gorm.DB
  10. func Connect(cfg *config.Config) (*gorm.DB, error) {
  11. // Connect to PostgreSQL database
  12. dsn := fmt.Sprintf(
  13. "host=%s user=%s password=%s dbname=%s port=5432 sslmode=disable",
  14. cfg.DBHost,
  15. cfg.DBUser,
  16. cfg.DBPass,
  17. cfg.DBName,
  18. )
  19. db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
  20. if err != nil {
  21. return nil, err
  22. }
  23. if err := db.AutoMigrate(&model.Gateway{}, model.Zone{}, model.TrackerZones{}, model.Tracker{}, model.Config{}, model.Settings{}); err != nil {
  24. return nil, err
  25. }
  26. fmt.Println("Database connection established")
  27. return db, nil
  28. }