summaryrefslogtreecommitdiff
path: root/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'db.go')
-rw-r--r--db.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/db.go b/db.go
new file mode 100644
index 0000000..10b9650
--- /dev/null
+++ b/db.go
@@ -0,0 +1,39 @@
+package main
+
+import (
+ "github.com/jinzhu/gorm"
+ "log"
+ "os"
+)
+
+var Db, dberr = gorm.Open(os.Getenv("FREEMAIL_DB_DRIVER"), os.Getenv("FREEMAIL_DB_CREDENTIALS"))
+
+func InitDB() {
+ if dberr != nil {
+ log.Panic(dberr)
+ }
+ logMode := os.Getenv("FREEMAIL_DB_LOG")
+ if logMode == "true" {
+ Db.LogMode(true)
+ }
+ if err := Db.DB().Ping(); err != nil {
+ log.Panic(err)
+ }
+
+ vD := VirtualDomain{}
+ Db.Debug().AutoMigrate(&vD)
+
+ vU := VirtualUser{}
+ Db.Debug().AutoMigrate(&vU)
+
+ vA := VirtualAliase{}
+ Db.Debug().AutoMigrate(&vA)
+
+ Db.Model(&vU).AddUniqueIndex("idx_virtuser_email", "email")
+ /*
+ Db.Model(&u).AddUniqueIndex("idx_user_name", "name")
+ Db.Model(&u).AddUniqueIndex("idx_user_email", "email")
+ Db.Model(&h).AddUniqueIndex("idx_host_url", "url")
+ Db.Model(&c).AddUniqueIndex("idx_config_sticky", "sticky")
+ */
+}