项目升级迁移
1分钟内可阅读完
先预览
使用正式稳定版 CLI,并在项目中提交或妥善保存当前修改:
grpc-kit-cli version --short
grpc-kit-cli project migrate ./service
默认只展示计划、diff 和 Manual action,不会写文件。确认目标项目是 clean Git 工作树,逐项审查后执行:
grpc-kit-cli project migrate ./service --apply
自动更新的范围
只更新首行带完整 CLI DO NOT EDIT 标记、且有内嵌兼容资产的已有文件。scripts/generate.sh 标记位于 shebang 后第二行;旧无标记副本只有路径和全文 SHA-256 与冻结历史资产匹配时才自动同步。修改过或未知副本提示 generate_script_modified,由人工核对。
命令不创建、删除或重命名文件,不修改 go.mod、业务源码或用户管理文件。应用前校验输入路径与摘要,写入过程提供失败回滚;这不是数据库或应用升级回滚。
人工迁移项
当前迁移资产面向 pkg v0.5.0 兼容系列,最新 new 模板则固定 pkg v0.5.1。应分别处理 Go 版本、pkg 依赖、logrus → slog 及 context API;以命令实际输出为准,不将迁移目标等同于所有依赖最新版本。
如使用共享技能 migrate-logrus-to-slog,先阅读安装到项目中的技能说明,审查业务代码和依赖 diff。根级 upgrade/update 不是项目迁移命令。
验证和回滚
# 在完成迁移的应用目录执行
git diff --check
make generate
make test
make build
# 另启服务并配置 E2E 凭据后
make test-e2e
保存迁移前 commit,并在独立分支进行验证。升级涉及 lion 数据库时先备份并核查关系数据中的删除行为;回退二进制不能恢复已删除的表。
维护 CLI 时另外执行 make test-compatibility PKG_COMPAT_VERSION=v0.5.0 与候选 pkg 版本测试,以及 make test-template-compatibility。这些是维护者的验证步骤,不是本轮已通过的测试结果。
来源:CLI README、迁移实现。