package main
import (
"goERP/initalActions"
_ "goERP/routers"
"goERP/utils"
"astaxie/beego"
"astaxie/beego/orm"
_ "go-sql-driver/mysql"
_ "lib/pq"
_ "mattn/go-sqlite3"
// "tampajohn/prerender"
)
func init() {
dbType := beego.AppConfig.String("db_type")
//获得数据库参数,不同数据库可能存在没有值的情况没有的值nil
dbAlias := beego.AppConfig.String(utils.StringsJoin(dbType, "::db_alias"))
dbName := beego.AppConfig.String(utils.StringsJoin(dbType, "::db_name"))
dbUser := beego.AppConfig.String(utils.StringsJoin(dbType, "::db_user"))
dbPwd := beego.AppConfig.String(utils.StringsJoin(dbType, "::db_pwd"))
dbPort := beego.AppConfig.String(utils.StringsJoin(dbType, "::db_port"))
dbHost := beego.AppConfig.String(utils.StringsJoin(dbType, "::db_host"))
orm.RegisterDriver(dbType, orm.DRPostgres)
switch dbType {
//数据库类型和数据库驱动名一致
case "postgres":
dbSslmode := beego.AppConfig.String(utils.StringsJoin(dbType, "::db_sslmode"))
dataSource := utils.StringsJoin("user=", dbUser, " password=", dbPwd, " dbname=", dbName, " host=", dbHost, " port=", dbPort, " sslmode=", dbSslmode)
orm.RegisterDataBase(dbAlias, dbType, dataSource)
case "mysql":
dbCharset := beego.AppConfig.String(utils.StringsJoin(dbType, "::db_charset"))
dataSource := utils.StringsJoin(dbUser, ":", dbPwd, "@/", dbName, "?charset=", dbCharset)
orm.RegisterDataBase(dbAlias, dbType, dataSource)
case "sqlite3":
orm.RegisterDataBase(dbAlias, "sqlite3", dbName)
}
utils.LogOut("info", "使用数据库为:"+dbType)
//重新运行时是否覆盖原表创建,false:不会删除原表,修改表信息时将会在原来的基础上修改,true删除原表重新创建
coverDb, _ := beego.AppConfig.Bool("cover_db")
//自动建表
orm.RunSyncdb(dbAlias, coverDb, true)
// 加载权限控制文件
// LoadSecurity()
// 初始化cache
utils.InitCache()
// 初始化数据
initalActions.InitApp()
// 初始化权限菜单,从数据库中获取按权限组区分放到全局变量中(后期考虑放到redis中),加快访问速度
initalActions.InitGroupMenu()
// 初始化表访问权限,从数据库中获取按权限组区分放到全局变量中(后期考虑放到redis中),加快访问速度
initalActions.InitGroupModuleAccess()
}
func main() {
// m := http.NewServeMux()
// m.HandleFunc("/", prerender.NewOptions().NewPrerender().PreRenderHandler)
beego.Run()
}
Footer
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。