1. Home
  2. Docs
  3. kratos
  4. 快速开始

快速开始

如何更新kratos版本 实战-从 kratos-v2.0.0-rc1 升级到 kratos-v2.0.0

  1. 查看下当前版本

    jw@jianwei seckill (main) $ kratos -v
    kratos version v2.0.0-rc1
  2. 查看go.mod文件 cat go.mod

    go 1.16
    require (
    ...
    github.com/go-kratos/kratos/v2 v2.0.0-rc1
    ...
    )
  3. 升级kratos构建工具
    go get -u github.com/go-kratos/kratos/cmd/kratos/v2@latest
  4. 查看构建工具版本是否更新

    jw@jianwei service (main) $ kratos -v
    kratos version v2.0.0
  5. 升级项目中的kratos版本

    cd /go/src/project # 项目的路径
    go get -u github.com/go-kratos/kratos/v2@latest
  6. 查看项目中的kratos版本是否更新成功 cat go.mod

    go 1.16
    require (
    ...
    github.com/go-kratos/kratos/v2 v2.0.0
    ...
    )

升级后测试构建项目出现错误

jw@jianwei service (main) $ make run
cd cmd/server/ && go run .
../../../../../../pkg/mod/github.com/aliyun/alibaba-cloud-sdk-go@v1.61.18/sdk/responses/json_parser.go:11:2: missing go.sum entry for module providing package github.com/json-iterator/go (imported by github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses); to add:
    go get github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses@v1.61.18
../../../../../../pkg/mod/go.opentelemetry.io/otel/metric@v0.20.0/config.go:18:2: no required module provides package go.opentelemetry.io/otel/unit; to add it:
    go get go.opentelemetry.io/otel/unit
../../../../../../pkg/mod/github.com/nacos-group/nacos-sdk-go@v1.0.8/common/logger/logger.go:28:2: missing go.sum entry for module providing package go.uber.org/zap (imported by github.com/nacos-group/nacos-sdk-go/common/logger); to add:

解决: 根据提示更新对应的库go get

出现错误but does not contain package

jw@jianwei service (main) $ go get go.opentelemetry.io/otel/unit
go get: module go.opentelemetry.io/otel@upgrade found (v1.0.0-RC1), but does not contain package go.opentelemetry.io/otel/unit

解决: 由于redis包的问题 版本更新 v8.10.0 -> v8.11.0
go get -u github.com/go-redis/redis/v8@v8.11.0

错误: undefined: binding.MapProto

cd cmd/server/ && go run .
# github.com/helloMJW/seckill/api/user/service/v1
../../../../../api/user/service/v1/user_http.pb.go:17:9: undefined: binding.MapProto
../../../../../api/user/service/v1/user_http.pb.go:34:46: undefined: "github.com/go-kratos/kratos/v2/transport/http".HandleOption
../../../../../api/user/service/v1/user_http.pb.go:35:7: undefined: "github.com/go-kratos/kratos/v2/transport/http".DefaultHandleOptions
../../../../../api/user/service/v1/user_http.pb.go:120:13: undefined: binding.BindVars
../../../../../api/user/service/v1/user_http.pb.go:190:10: undefined: binding.EncodePath
../../../../../api/user/service/v1/user_http.pb.go:193:19: cannot use nil as type string in argument to c.cc.Invoke

解决: 执行命令 make generate 执行命令 make http

错误: undefined: v1.NewOrderHandler

cd cmd/server/ && go run .
# github.com/helloMJW/seckill/app/order/service/internal/server
../../internal/server/http.go:32:24: undefined: v1.NewOrderHandler
make: *** [run] Error 2

解决: 对照最新 https://github.com/go-kratos/kratos-layout/blob/main/internal/server/http.go 修改项目中的http.go文件

Was this article helpful to you? Yes No

How can we help?