Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
db.go 906 B
package db
import (
"errors"
"fmt"
"os"
log "github.com/sirupsen/logrus"
"gitlab.reutlingen-university.de/go-exercises/myaktion-go-ss2023/src/myaktion/model"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
var DB *gorm.DB
func Init() {
err := Connect(os.Getenv("DB_CONNECT"))
if err != nil {
panic(err)
}
}
func Connect(connect string) error {
// init DB
var err error
dsn := fmt.Sprintf("root:root@tcp(%s)/myaktion?charset=utf8&parseTime=True&loc=Local", connect)
log.Info("Using DSN for DB:", dsn)
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
return errors.New("failed to connect to database")
}
log.Info("Starting automatic migrations")
if err := DB.Debug().AutoMigrate(&model.Campaign{}); err != nil {
return err
}
if err := DB.Debug().AutoMigrate(&model.Donation{}); err != nil {
return err
}
log.Info("Automatic migrations finished")
return nil
}