package main import ( "log" "log/slog" "os" "time" "gorm.io/driver/sqlite" "gorm.io/gorm" "gorm.io/gorm/logger" ) func NewDatabase(path string) *gorm.DB { sl := slog.With("source", "database") l := logger.New( log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{ SlowThreshold: time.Second, Colorful: false, }, ) db, err := gorm.Open(sqlite.Open(path), &gorm.Config{ Logger: l, }) if err != nil { sl.Error("failed to open database", "err", err) } db.Exec("PRAGMA journal_mode=WAL") return db }