不同环境如何,加载不同的配置文件?
不同环境指的是:开发环境/测试环境/预发环境/生产环境等。
1、首先,在一些互联网项目中,特别是分布式或者微服务化的架构下,一般会使用配置管理中心,不同的环境会对应不同的配置管理中心,所以这样的场景不会存在这样的问题。
2、其次,如果是传统的项目管理方式下,可能会将配置文件放到代码仓库中共同管理,这样的方式是不推荐的。如果您仍然想要这么做,您可以通过系统环境变量或者命令行启动参数,让程序自动选择配置文件或者指定配置目录,参考 配置管理 章节。例如:./app --gf.gcfg.file config-prod.toml
则通过命令行启动参数的方式将默认读取的配置文件修改为了 config-prod.toml
文件。
我们更加不建议您的是在程序中通过代码逻辑来区分和读取不同环境的配置文件。
Linux下安装gf 提示命令不存在command not found
./gf install
安装后
执行gf -v
提示gf: command not found
且/usr/bin目录下并没有gf文件
解决方法:
拷贝sh文件到 /usr/bin目录
cp gf /usr/bin
然后执行
gf -v
就会看到
GoFrame CLI Tool v1.15.4, https://goframe.org
Install Path: /bin/gf
Build Detail:
Go Version: go1.16.2
GF Version: v1.15.3
Git Commit: 22011e76dc3e14006936164cc89e2d4c9190a36d
Build Time: 2021-03-30 15:43:22
Win10 提示gf命令不存在
解决办法:
安装gf.exe
https://github.com/gogf/gf-cli/blob/master/README_ZH.MD
update/insert操作不生效
使用gform
时,配置文件中:
dryRun = "(可选)ORM空跑(只读不写)"
这行配置一定要删掉或者设置为0
否则出现update insert
操作不生效的现象。具体请参考文档:ORM高级特性
Linux下执行 go build main.go 提示连接超时 connection timed out
go: github.com/gogf/gf@v1.14.6-0.20201214132204-c685876e6f67: Get "https://proxy.golang.org/github.com/gogf/gf/@v/v1.14.6-0.20201214132204-c685876e6f67.mod":
dial tcp 172.217.160.113:443:
connect: connection timed out
解决办法:
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
具体请看:
glog with “ERROR: logging before flag.Parse”
Golang官方有个简单的日志库包名也叫做glog
,检查你文件顶部import
的包名,将github.com/golang/glog
修改为github.com/gogf/gf/os/glog
即可。
gcron与http如何同时使用?
main.go
func main() {
//定时任务1
gcron.AddSingleton("*/5 * * * * *", func() {
task.Test()
glog.Debug("gcron1")
})
//定时任务2
gcron.AddSingleton("*/10 * * * * *", func() {
glog.Debug("gcron2")
})
//接收http请求
g.Server().Run()
}
注意, gcron
一定要在g.Server().Run
的前面。
MYSQL中的表情,用SQL查询后,乱码问题
解决办法:
config.toml文件 数据库配置的charset设置为utf8mb4 默认是utf8
Mysql存储表情时注意
数据库编码 utf8mb4
表的编码是 utf8mb4
表中内容字段是 utf8mb4
Content Menu