shelfy/internal/db/db.go

57 lines
1.2 KiB
Go
Raw Normal View History

2025-06-06 07:42:55 +00:00
package db
import (
2025-06-09 14:13:32 +00:00
"app/shelfly/internal/debridlink"
2025-06-12 08:57:10 +00:00
"app/shelfly/internal/download"
2025-06-06 07:42:55 +00:00
"app/shelfly/internal/models"
2025-06-09 14:13:32 +00:00
"fmt"
2025-06-06 07:42:55 +00:00
"gorm.io/driver/sqlite"
"gorm.io/gorm"
2025-06-15 15:21:11 +00:00
"gorm.io/gorm/logger"
2025-06-06 07:42:55 +00:00
)
func InitDB()*gorm.DB {
dbName:="shelfly_db.db"
// Ouvre une connexion à la base de données
2025-06-15 15:21:11 +00:00
//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
})
2025-06-06 07:42:55 +00:00
if err != nil {
panic("failed to connect database")
}
2025-06-15 15:21:11 +00:00
//db.Migrator().DropTable(&download.DownloadJob{}) // ⚠️ temporaire
2025-06-06 07:42:55 +00:00
// Migrate the schema
2025-06-09 14:13:32 +00:00
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{},
2025-06-12 08:57:10 +00:00
&download.DownloadJob{},
2025-06-09 14:13:32 +00:00
)
2025-06-06 07:42:55 +00:00
fmt.Println("Connexion réussie à MySQL !")
fmt.Println("Auto migration completed")
return db
}