package helpers import ( "log" "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 } return connectDatabase() } func connectDatabase() (*gorm.DB, error) { config, err := GetConfig() if err != nil { // TODO: Handle exception log.Fatal(err) } database, err = gorm.Open( sqlite.Open(config.Database.Location), &gorm.Config{}, ) if err != nil { // TODO: Handle exception log.Fatal(err) } err = database.AutoMigrate( &models.User{}, &models.Section{}, &models.Role{}, &models.UserRole{}, &models.Person{}, &models.List{}, &models.ListItem{}, ) if err != nil { // TODO: Handle exception log.Fatal(err) } connected = true return database, err }