package database import ( "fmt" "github.com/mattnite/forgejo-tickets/internal/models" "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/logger" ) func Connect(databaseURL string) (*gorm.DB, error) { db, err := gorm.Open(postgres.Open(databaseURL), &gorm.Config{ Logger: logger.Default.LogMode(logger.Warn), }) if err != nil { return nil, fmt.Errorf("connect to database: %w", err) } sqlDB, err := db.DB() if err != nil { return nil, fmt.Errorf("get underlying sql.DB: %w", err) } if err := sqlDB.Ping(); err != nil { return nil, fmt.Errorf("ping database: %w", err) } return db, nil } func RunMigrations(db *gorm.DB) error { return models.AutoMigrate(db) }