package database import ( configs "ares/config" "time" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" ) var DB *gorm.DB func ConnectDB() { dsn := configs.AppConfig.DBUrl if dsn == "" { if configs.Logger != nil { configs.Logger.Warn(".env dosyasında DB_URL ayarlı değil — veritabanı bağlantısı atlanıyor (geliştirme modu)") } return } if configs.Logger != nil { configs.Logger.Info("Yapılandırmada DB_URL bulundu, veritabanına bağlanılmaya çalışılıyor...") } // GORM için MySQL konfigürasyonu db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Warn), // Info seviyesi (performans etkileyebilir); üretimde Error seviyesine alınabilir PrepareStmt: true, // PrepareStmt performansını artırmak için NowFunc: func() time.Time { return time.Now().UTC() }, }) if err != nil { if configs.Logger != nil { configs.Logger.Sugar().Errorf("MySQL veritabanı bağlantısı kurulamadı: %v", err) } return } if configs.Logger != nil { configs.Logger.Info("MySQL veritabanı bağlantısı kuruldu.") } DB = db }