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")
+}