func InitDB() (err error) { // utils.LoadConfig("conf/app.conf") utils.LoadConfig("conf/app-local.conf") // utils.LoadConfig("conf/app-skytap.conf") // appname = goTestLinkReport // httpport = 8080 // runmode = dev // appname = utils.Cfg.MustValue("server", key, ...) // dbtype = mysql // host = 127.0.0.1 // port = 3306 // name = report // user = root // pwd = 123123 // # SSLMODE = false dbtype := utils.Cfg.MustValue("db", "dbtype") host := utils.Cfg.MustValue("db", "host") port := utils.Cfg.MustValue("db", "port") name := utils.Cfg.MustValue("db", "name") user := utils.Cfg.MustValue("db", "user") pwd := utils.Cfg.MustValue("db", "pwd") ssl := utils.Cfg.MustValue("db", "ssl") switch dbtype { case "mysql": // connstr := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8", // user, pwd, host, port, name) connstr := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8", user, pwd, host, port, name) fmt.Errorf(connstr) orm, err = xorm.NewEngine("mysql", connstr) if err != nil { beego.Debug(fmt.Sprintf("Failed to create new engine : %v\n", err)) } case "postgres": cnnstr := fmt.Sprintf("user=%s password=%s host=%s port=%s dbname=%s sslmode=%s", user, pwd, host, port, name, ssl) orm, err = xorm.NewEngine("postgres", cnnstr) default: beego.Debug(fmt.Sprintf("Unknown db type: %s\n", dbtype)) return fmt.Errorf("Unknown db type: %s\n", dbtype) } if err != nil { beego.Debug(fmt.Sprintf("models.init(failed to connect database): %v\n", err)) return fmt.Errorf("models.init(failed to connect database): %v\n", err) } // orm.ShowSQL = true // orm.ShowInfo = true // orm.ShowDebug = true // orm.ShowWarn = true orm.ShowErr = true fmt.Println("success!") return orm.Sync(tables...) }
func InitDB() (err error) { utils.LoadConfig("../conf/app.conf") dbtype := utils.Cfg.MustValue("db", "dbtype") host := utils.Cfg.MustValue("db", "host") port := utils.Cfg.MustValue("db", "port") name := utils.Cfg.MustValue("db", "name") user := utils.Cfg.MustValue("db", "user") pwd := utils.Cfg.MustValue("db", "pwd") ssl := utils.Cfg.MustValue("db", "ssl") switch dbtype { case "mysql": // connstr := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8", // user, pwd, host, port, name) connstr := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8", user, pwd, host, port, name) fmt.Errorf(connstr) orm, err = xorm.NewEngine("mysql", connstr) if err != nil { beego.Debug(fmt.Sprintf("Failed to create new engine : %v\n", err)) } case "postgres": cnnstr := fmt.Sprintf("user=%s password=%s host=%s port=%s dbname=%s sslmode=%s", user, pwd, host, port, name, ssl) orm, err = xorm.NewEngine("postgres", cnnstr) default: beego.Debug(fmt.Sprintf("Unknown db type: %s\n", dbtype)) return fmt.Errorf("Unknown db type: %s\n", dbtype) } if err != nil { beego.Debug(fmt.Sprintf("models.init(failed to connect database): %v\n", err)) return fmt.Errorf("models.init(failed to connect database): %v\n", err) } // orm.ShowSQL = true // orm.ShowInfo = true // orm.ShowDebug = true // orm.ShowWarn = true orm.ShowErr = true orm.SetMapper(core.SameMapper{}) fmt.Println("success!") // return orm.Sync(tables...) err = orm.Sync(new(Test), new(PkgFunc)) if err != nil { fmt.Println("Failed to Sync()!") } return }
// We have to call a initialize function manully // because we use `bee bale` to pack static resources // and we cannot make sure that which init() execute first. func initialize() { // Load configuration, set app version and log level. utils.LoadConfig("conf/app.ini") // Load locale files. langs := strings.Split(utils.Cfg.MustValue("lang", "types"), "|") // Skip en-US. for i := 1; i < len(langs); i++ { err := i18n.SetMessage(langs[i], "conf/locale_"+langs[i]+".ini") if err != nil { panic("Fail to set message file: " + err.Error()) } } // Trim 4th part. routers.AppVer = strings.Join(strings.Split(APP_VER, ".")[:3], ".") beego.AppName = utils.Cfg.MustValue("beego", "app_name") beego.RunMode = utils.Cfg.MustValue("beego", "run_mode") beego.HttpPort = utils.Cfg.MustInt("beego", "http_port_"+beego.RunMode) routers.IsBeta = utils.Cfg.MustBool("server", "beta") routers.IsProMode = beego.RunMode == "prod" if routers.IsProMode { beego.SetLevel(beego.LevelInfo) beego.Info("Product mode enabled") os.Mkdir("./log", os.ModePerm) beego.BeeLogger.SetLogger("file", `{"filename": "log/log"}`) } // Initialize data. models.InitDb() routers.InitRouter() doc.SetGithubCredentials(utils.Cfg.MustValue("github", "client_id"), utils.Cfg.MustValue("github", "client_secret")) }