Files
ai-media-hub/backend/models/db.go
AI Assistant 4cdf1066e6
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 33s
Optimize Dockerfile cache, binary size, SQLite WAL, and remove unused python package
2026-03-12 14:20:56 +09:00

51 lines
1.0 KiB
Go

package models
import (
"log"
"os"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
var DB *gorm.DB
type MediaHistory struct {
gorm.Model
SourceURL string `gorm:"uniqueIndex"`
FilePath string
Status string
Type string // ENUM: "download", "upload"
}
func InitDB(dbPath string) {
var err error
// 도커 로그 디버깅을 위해 SQL 쿼리를 디테일하게 출력하는 로거 설정
newLogger := logger.New(
log.New(os.Stdout, "\r\n", log.LstdFlags),
logger.Config{
LogLevel: logger.Info,
Colorful: true,
},
)
log.Println("Connecting to SQLite at:", dbPath)
DB, err = gorm.Open(sqlite.Open(dbPath), &gorm.Config{
Logger: newLogger,
})
if err != nil {
log.Fatal("Failed to connect to database:", err)
}
// SQLite 동시성 최적화를 위해 WAL(Write-Ahead Logging) 모드를 활성화
DB.Exec("PRAGMA journal_mode=WAL;")
err = DB.AutoMigrate(&MediaHistory{})
if err != nil {
log.Println("Database migration error:", err)
}
log.Println("Database initialized and migrated.")
}