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) } }