Skip to content
Snippets Groups Projects
Select Git revision
  • david
  • master default protected
  • eray
  • artem
  • Benedikt
5 results

README.md

Blame
  • 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
    }