一般的坑就不记录了,这里记录几个巨大的。
1.casbin
数据表变了(ptype字段名称大小写),所以要删掉原来的表或修改表字段
beegoormadapter 3.0如下
type CasbinRule struct {
Id int
Ptype string
V0 string
V1 string
V2 string
V3 string
V4 string
V5 string
}
beegoormadapter 3.0之前如下:
type CasbinRule struct {
Id int
PType string
V0 string
V1 string
V2 string
V3 string
V4 string
V5 string
}
2.main.go文件要引入
_ "github.com/3xxx/engineercms/routers"
否则路由出不来
3.route.go中cors要用
"github.com/beego/beego/v2/server/web/filter/cors"
4.beego的自动升级会加入
beego "github.com/beego/beego/v2/adapter"
但是我们应该用下面这2行:
4-1.所有文件中beego要用web
"github.com/beego/beego/v2/server/web"
"github.com/beego/beego/v2/core/logs"
然后代码中的beego.……改成web.……
例如
beego.NewNamespace("/v1",
……
改成:
web.NewNamespace("/v1",
……
type ArticleController struct {
// beego.Controller
web.Controller
}
当然,如果你用官方的办法
beego "github.com/beego/beego/v2/server/web"
那么就不用改beego啦。
beego.Error()改成logs.Error()
5.不要用v2/adapter下的代码
"github.com/beego/beego/v2/adapter"
要用v2/server/web下的代码
"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()改成
c.GetString()
// beego.AppConfig.String("wxreqeustsite")
wxsite, err := web.AppConfig.String("wxreqeustsite")
7.出现graceful错误
这个错误无法查找定位,非常头痛,如下
有人说是引用包导致的……我的却是routers/commentsRouter____3xxx_engineercms_controllers.go这个文件没有更新导致,删除重新生成即可。
./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