pop-camarades/helpers/database.go

48 lines
784 B
Go

package helpers
import (
"git.readonly.ch/bouzoure/pop-camarades/models"
"github.com/glebarez/sqlite"
"gorm.io/gorm"
)
var database *gorm.DB
var connected bool
func GetDatabase() (*gorm.DB, error) {
if connected {
return database, nil
}
config, err := GetConfig()
if err != nil {
return database, err
}
database, err = gorm.Open(
sqlite.Open(config.Database.Location),
&gorm.Config{},
)
if err != nil {
return database, err
}
err = database.AutoMigrate(
&models.User{},
&models.UserSavedSession{},
&models.Section{},
&models.Role{},
&models.UserRole{},
&models.Person{},
&models.List{},
&models.ListItem{},
&models.Field{},
&models.FieldValue{},
)
if err != nil {
return database, err
}
connected = true
return database, nil
}