go1.15.6 darwin/amd64
1.14
function main{ g.Cfg().SetPath("/opt/config/dev") ....... }
想在main中设置当前环境对应的配置文件目录,但是在设置前, 先编译model,默认定义model全局变量时,会读取config的db配置,导致获取不到配置信息报错
在main中设置对应环境配置文件目录,比在编辑时添加参数或设置环境变量 会更加友好,但会和model冲突
go1.15.6 darwin/amd64
1.14
function main{ g.Cfg().SetPath("/opt/config/dev") ....... }
想在main中设置当前环境对应的配置文件目录,但是在设置前, 先编译model,默认定义model全局变量时,会读取config的db配置,导致获取不到配置信息报错
在main中设置对应环境配置文件目录,比在编辑时添加参数或设置环境变量 会更加友好,但会和model冲突
@harrisHxy 哈哈,你这个涉及到import
包顺序的问题,你在boot
包中做这个事情,并且通过init
初始化包方法试试。务必保证你的设置是所有包引入之前。
在 boot.go 的 init 方法里面去 设置配置文件的目录,然后在 main.go 第一行引入 boot 包,就 OK 了
了解了,谢谢大佬, 文档里中配置文件模块,感觉可以补充下这个
正解,谢谢大佬
@harrisHxy 大佬,项目目录下面有多个配置文件时,配置项会覆盖吗?我目前试了下,根目录下面的配置文件和config目录下的都有config.toml的时候,只会读取根目录下的配置文件,不会合并覆盖,是这样吗?
我试了下 ,也是只会读取根目录下的配置文件
@dabuge @harrisHxy @CharlseChen 大家可以参考下修改默认配置文件的方式,新增加的:https://itician.org/pages/viewpage.action?pageId=1114668#id-%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86-%E9%BB%98%E8%AE%A4%E6%96%87%E4%BB%B6%E4%BF%AE%E6%94%B9