clortho/db/db.go
Maxime Duchene-Savard 5a23f5ecfe first commit
2025-03-30 22:44:56 -04:00

55 lines
797 B
Go

package db
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"log"
"os"
)
var Connection *gorm.DB
func InitDb() error {
dbFile := getDbFilePath()
var err error
Connection, err = gorm.Open(sqlite.Open(dbFile), &gorm.Config{})
if err != nil {
return err
}
structs := []interface{}{
&Key{},
&User{},
&UserSession{},
&System{},
&Group{},
&SystemGroup{},
&Grant{},
}
for _, s := range structs {
err := Connection.AutoMigrate(s)
if err != nil {
return err
}
}
return nil
}
func getDbFilePath() string {
dbFile := os.Getenv("CLORTHO_DB_FILE")
if len(dbFile) == 0 {
dbFile = "clortho.db"
}
return dbFile
}
func ResetDb() {
dbFile := getDbFilePath()
err := os.Remove(dbFile)
if err != nil {
log.Println("Could not delete DB file:", dbFile, err)
}
}