beego下根据部署环境加载相应配置文件

1454 查看

最近用beego开发的项目频繁的要部署到测试环境提测,然后部署到线上发布,由于两种环境下配置文件中某些配置参数不同,每次手动修改很是麻烦,故而想有没有办法能根据部署环境的不同加载相应环境的配置变量。
幸而得同事告知,两种环境下都会注入ENV_CLUSTER这个系统环境变量,且变量值不同。于是,在main函数beego.Run()执行前,我创建了一个预先执行的init文件,将自适应环境加载配置文件的代码逻辑放在了这里。
具体代码如下:

    env := os.Getenv("ENV_CLUSTER")
    if env == "online" {
        beego.AppConfigPath = "./conf/online.conf"
    } else if env == "beta" {
        beego.AppConfigPath = "./conf/beta.conf"
    } else {
        beego.AppConfigPath = "./conf/dev.conf"
    }
    beego.ParseConfig()