57 lines
1.2 KiB
Go
57 lines
1.2 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"
|
|
"gorm.io/gorm/logger"
|
|
)
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|