diff --git a/src/myaktion/db/db.go b/src/myaktion/db/db.go new file mode 100644 index 0000000000000000000000000000000000000000..2321e4c8cc74f307e2b91d906d8fc84b82547ae2 --- /dev/null +++ b/src/myaktion/db/db.go @@ -0,0 +1,31 @@ +package db + +import ( + "fmt" + "os" + + log "github.com/sirupsen/logrus" + "gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion/model" + "gorm.io/driver/mysql" + "gorm.io/gorm" +) + +var DB *gorm.DB + +func init() { + dsn := fmt.Sprintf("root:root@tcp(%s)/myaktion?charset=utf8&parseTime=True&loc=Local", os.Getenv("DB_CONNECT")) + log.Info("Using DSN for DB:", dsn) + var err error + DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) + if err != nil { + panic("failed to connect to database") + } + log.Info("Starting automatic migrations") + if err := DB.Debug().AutoMigrate(&model.Campaign{}); err != nil { + panic(err) + } + if err := DB.Debug().AutoMigrate(&model.Donation{}); err != nil { + panic(err) + } + log.Info("Automatic migrations finished") +}