40 lines
992 B
Go
40 lines
992 B
Go
package database
|
||
|
||
import (
|
||
configs "goGin/config"
|
||
"log"
|
||
"time"
|
||
|
||
"gorm.io/driver/mysql"
|
||
"gorm.io/gorm"
|
||
"gorm.io/gorm/logger"
|
||
)
|
||
|
||
var DB *gorm.DB
|
||
|
||
func ConnectDB() {
|
||
dsn := configs.AppConfig.DBUrl
|
||
if dsn == "" {
|
||
log.Println(".env dosyasında DB_URL ayarlı değil — veritabanı bağlantısı atlanıyor (geliştirme modu)")
|
||
return
|
||
}
|
||
|
||
log.Println("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.Info), // 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 {
|
||
log.Println("MySQL veritabanı bağlantısı kurulamadı:", err)
|
||
return
|
||
}
|
||
|
||
log.Println("MySQL bağlantısı Sağlandı.")
|
||
DB = db
|
||
}
|