shelfy/internal/db/db.go
2025-06-15 21:18:23 +02:00

56 lines
1.1 KiB
Go

package db
import (
"app/shelfly/internal/debridlink"
"app/shelfly/internal/download"
"app/shelfly/internal/models"
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
func InitDB()*gorm.DB {
dbName:="shelfly_db.db"
// Ouvre une connexion à la base de données
//db, err := gorm.Open(sqlite.Open(dbName), &gorm.Config{})
db, err := gorm.Open(sqlite.Open(dbName), &gorm.Config{
//Logger: logger.Default.LogMode(logger.Info), // pour voir les types SQL utilisés
})
if err != nil {
panic("failed to connect database")
}
//db.Migrator().DropTable(&download.DownloadJob{}) // ⚠️ temporaire
// Migrate the schema
db.AutoMigrate(
&models.User{},
&models.Files{},
&models.LibrarySection{},
&models.MediaItem{},
&models.MediaPart{},
&models.MetadataItem{},
&models.SectionLocation{},
&models.Tag{},
&models.Tagging{},
&models.PathDownload{},
&debridlink.File{},
&debridlink.Link{},
&debridlink.RSSFeed{},
&debridlink.RSSItem{},
&debridlink.Torrent{},
&debridlink.DebridAccount{},
&download.DownloadJob{},
)
fmt.Println("Connexion réussie à MySQL !")
fmt.Println("Auto migration completed")
return db
}