配置文件升级怎么搞?

lysShub · 5 天前 · 414 次点击

在站内找到个相同帖子 https://www.fshex.com/t/890739

问题是应该怎么升级呢?难道每个版本都实现一个类似 func Update(cfg ConfigV2)(ConfigV3, error) 的玩意? 这样岂不是每个 ConfigVx 的 struct 都得保留一份?

这种需求有没有现成的方案?

举报· 414 次点击
登录 注册 站外分享
3 条回复  
COW 初学 5 天前
考虑弄一个文件,代码里用 if else 判断当前软件的版本,动态生成差异配置
lysShub 楼主 小成 5 天前
@COW 用什么动态生成?自己手搓?
COW 初学 5 天前
@lysShub 针对配置文件本身,可以用 template 语法来生成指定版本的配置文件。 针对代码内的 config 结构体,可以引入 version 字段,根据版本使用不同配置。 case v1:config = &ConfigV1{} case f:config = &ConfigV2{}
返回顶部