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(&vU).AddForeignKey("domain_id", "virtual_domains(id)", "CASCADE", "RESTRICT") /* 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") */ }