[gogf/gf]gf 在main代码指定配置文件目录问题

2024-07-09 635 views
5

go1.15.6 darwin/amd64

1.14

function main{ g.Cfg().SetPath("/opt/config/dev") ....... }

想在main中设置当前环境对应的配置文件目录,但是在设置前, 先编译model,默认定义model全局变量时,会读取config的db配置,导致获取不到配置信息报错

在main中设置对应环境配置文件目录,比在编辑时添加参数或设置环境变量 会更加友好,但会和model冲突

回答

1

@harrisHxy 哈哈,你这个涉及到import包顺序的问题,你在boot包中做这个事情,并且通过init初始化包方法试试。务必保证你的设置是所有包引入之前。

4

在 boot.go 的 init 方法里面去 设置配置文件的目录,然后在 main.go 第一行引入 boot 包,就 OK 了

6

了解了,谢谢大佬, 文档里中配置文件模块,感觉可以补充下这个

2

正解,谢谢大佬

6

@harrisHxy 大佬,项目目录下面有多个配置文件时,配置项会覆盖吗?我目前试了下,根目录下面的配置文件和config目录下的都有config.toml的时候,只会读取根目录下的配置文件,不会合并覆盖,是这样吗?

7

我试了下 ,也是只会读取根目录下的配置文件