An experimental IndieWeb site built in Go.
1package storage
2
3import (
4 "log"
5 "os"
6 "path/filepath"
7
8 "github.com/glebarez/sqlite"
9 "gorm.io/gorm"
10)
11
12var orm *gorm.DB
13
14func GORM() *gorm.DB {
15 if orm != nil {
16 return orm
17 }
18
19 dataDir := filepath.Join(".", "data")
20 if err := os.MkdirAll(dataDir, os.ModePerm); err != nil {
21 log.Fatal(err)
22 }
23
24 db, err := gorm.Open(sqlite.Open(filepath.Join(dataDir, "data.db")), &gorm.Config{})
25 if err != nil {
26 log.Fatal(err)
27 }
28
29 orm = db
30
31 // TODO: Move migration to `models` package
32 // if err := db.AutoMigrate(&models.Post{}); err != nil {
33 // log.Fatal(err)
34 // }
35
36 return db
37}