From d5e23dcd03e54849c3ccba3de6776bc9964a90b3 Mon Sep 17 00:00:00 2001
From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de>
Date: Sun, 7 May 2023 19:18:41 +0200
Subject: [PATCH] Initialized database

---
 src/myaktion/db/db.go | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 src/myaktion/db/db.go

diff --git a/src/myaktion/db/db.go b/src/myaktion/db/db.go
new file mode 100644
index 0000000..2321e4c
--- /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")
+}
-- 
GitLab