diff options
Diffstat (limited to 'db.go')
| -rw-r--r-- | db.go | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -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") + */ +} |
