func init() { var err error var db gorm.DB dbConfig := config.Config.DB if config.Config.DB.Adapter == "mysql" { db, err = gorm.Open("mysql", fmt.Sprintf("%v:%v@/%v?parseTime=True&loc=Local", dbConfig.User, dbConfig.Password, dbConfig.Name)) } else if config.Config.DB.Adapter == "postgres" { db, err = gorm.Open("postgres", fmt.Sprintf("user=%v password=%v dbname=%v sslmode=disable", dbConfig.User, dbConfig.Password, dbConfig.Name)) } else { panic(errors.New("not supported database adapter")) } if err == nil { DB = &db Publish = publish.New(DB) config.Config.I18n = i18n.New(database.New(DB)) l10n.RegisterCallbacks(DB) sorting.RegisterCallbacks(DB) validations.RegisterCallbacks(DB) } else { panic(err) } }
func init() { host := config.MySQLHost database := config.MySQLDatabase var err error connect := fmt.Sprintf("root:%s@tcp(%s:%s)/%s?parseTime=true", config.MySQLRootPassword, host, config.MySQLPort, database) // fmt.Println(connect) DB, err = gorm.Open("mysql", connect) if err != nil { panic(fmt.Sprintf("Error when connect database: '%v'", err)) } DB.LogMode(config.Verbose) models := AllModels for _, m := range models { err = DB.AutoMigrate(m).Error if err != nil { panic(fmt.Sprintf("Error when migrate: '%v'", err)) } } validations.RegisterCallbacks(&DB) }
func initAdmin() { Admin = admin.New(&qor.Config{DB: models.DB}) Publish = publish.New(models.DB) sorting.RegisterCallbacks(models.DB) validations.RegisterCallbacks(models.DB) nodeSelectMeta := &admin.Meta{Name: "NodeId", Type: "select_one", Collection: nodeCollection} bodyMeta := &admin.Meta{Name: "Body", Type: "text"} Admin.AddResource(&admin.AssetManager{}, &admin.Config{Invisible: true}) topic := Admin.AddResource(&models.Topic{}) topic.SearchAttrs("Title") topic.NewAttrs("Title", "NodeId", "Body", "UserId") topic.EditAttrs("Title", "NodeId", "Body", "UserId") topic.IndexAttrs("Id", "UserId", "Title", "NodeId", "RepliesCount", "CreatedAt", "UpdatedAt") topic.Meta(bodyMeta) topic.Meta(nodeSelectMeta) reply := Admin.AddResource(&models.Reply{}) reply.NewAttrs("TopicId", "UserId", "Body") reply.EditAttrs("Body") reply.IndexAttrs("Id", "Topic", "User", "Body", "CreatedAt", "UpdatedAt") reply.Meta(bodyMeta) user := Admin.AddResource(&models.User{}) user.SearchAttrs("Login", "Email") user.EditAttrs("Login", "Email", "Location", "GitHub", "Twitter", "HomePage", "Tagline", "Description") user.IndexAttrs("Id", "Login", "Email", "Location", "CreatedAt", "UpdatedAt") node := Admin.AddResource(&models.Node{}) node.IndexAttrs("Id", "NodeGroupId", "Name", "Summary", "Sort") node.NewAttrs("NodeGroupId", "Name", "Summary", "Sort") node.EditAttrs("NodeGroupId", "Name", "Summary", "Sort") node.Meta(&admin.Meta{Name: "NodeGroupId", Type: "select_one", Collection: nodeGroupCollection}) nodeGroup := Admin.AddResource(&models.NodeGroup{}) nodeGroup.IndexAttrs("Id", "Name", "Sort") nodeGroup.NewAttrs("Name", "Sort") nodeGroup.EditAttrs("Name", "Sort") notification := Admin.AddResource(&models.Notification{}) notification.EditAttrs("Id") notification.IndexAttrs("Id", "UserId", "ActorId", "NotifyType", "Read", "NotifyableType", "NotifyableId", "CreatedAt", "UpdatedAt") mux = http.NewServeMux() mux.Handle("/system/", http.FileServer(http.Dir("public"))) Admin.MountTo("/admin", mux) }
func init() { db = utils.TestDB() validations.RegisterCallbacks(db) db.AutoMigrate(&User{}, &Company{}, &CreditCard{}, &Address{}, &Language{}) }