前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >beego 2.0升级的巨坑,graceful错误

beego 2.0升级的巨坑,graceful错误

作者头像
hotqin888
发布2022-01-05 13:59:05
1.1K0
发布2022-01-05 13:59:05
举报
文章被收录于专栏:hotqin888的专栏hotqin888的专栏

一般的坑就不记录了,这里记录几个巨大的。

1.casbin

数据表变了(ptype字段名称大小写),所以要删掉原来的表或修改表字段

beegoormadapter 3.0如下

代码语言:javascript
复制
type CasbinRule struct {
	Id    int
	Ptype string
	V0    string
	V1    string
	V2    string
	V3    string
	V4    string
	V5    string
}

beegoormadapter 3.0之前如下:

代码语言:javascript
复制
type CasbinRule struct {
	Id    int
	PType string
	V0    string
	V1    string
	V2    string
	V3    string
	V4    string
	V5    string
}

2.main.go文件要引入

代码语言:javascript
复制
_ "github.com/3xxx/engineercms/routers"

否则路由出不来

3.route.go中cors要用

代码语言:javascript
复制
"github.com/beego/beego/v2/server/web/filter/cors"

4.beego的自动升级会加入

代码语言:javascript
复制
beego "github.com/beego/beego/v2/adapter"

但是我们应该用下面这2行:

4-1.所有文件中beego要用web

代码语言:javascript
复制
"github.com/beego/beego/v2/server/web"
"github.com/beego/beego/v2/core/logs"

然后代码中的beego.……改成web.……

例如

代码语言:javascript
复制
beego.NewNamespace("/v1",
……
改成:
web.NewNamespace("/v1",
……

type ArticleController struct {
    // beego.Controller
	web.Controller
}

当然,如果你用官方的办法

代码语言:javascript
复制
beego "github.com/beego/beego/v2/server/web"

那么就不用改beego啦。

beego.Error()改成logs.Error()

5.不要用v2/adapter下的代码

代码语言:javascript
复制
"github.com/beego/beego/v2/adapter"

要用v2/server/web下的代码

代码语言:javascript
复制
"github.com/beego/beego/v2/server/web/context"
"github.com/beego/beego/v2/server/web/pagination"

原因见https://github.com/beego/beego/issues/4382

6.c.Input().Get()改成

代码语言:javascript
复制
c.GetString()
// beego.AppConfig.String("wxreqeustsite")
wxsite, err := web.AppConfig.String("wxreqeustsite")

7.出现graceful错误

这个错误无法查找定位,非常头痛,如下

有人说是引用包导致的……我的却是routers/commentsRouter____3xxx_engineercms_controllers.go这个文件没有更新导致,删除重新生成即可。

代码语言:javascript
复制
./engineercms.exe flag redefined: graceful
panic: ./engineercms.exe flag redefined: graceful

goroutine 1 [running]:
flag.(*FlagSet).Var(0xc00006c060, 0x35fded0, 0x43d79af, 0x31d7a81, 0x8, 0x3225e6a, 0x21)
        D:/Go/src/flag/flag.go:871 +0x48b
flag.BoolVar(...)
        D:/Go/src/flag/flag.go:636
github.com/astaxie/beego/grace.init.0()
        D:/gowork/pkg/mod/github.com/astaxie/beego@v1.12.3/grace/grace.go:93 +0x85
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-01-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档