请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

发现这节课的一个问题 - 关于找不到部分方法跟数据库初始化失败的解决方法

完整项目代码里面包含golang_common这个工具库的文件夹,但是从框架拉下来是没有的。所以使用lib.GetGormPool(“default”)获取连接池的时候会有问题。

vs code自动解决错误的话,会拉"github.com/e421083458/golang_common"这样一个包,看起来是跟上面的golang_common是一样的,不过里面的结构体就不是一回事。

本地文件夹这个包自己封装了一个gorm.DB,拉下来的那个golang_common包又是用的gorm原来的gorm.DB,导致传值的时候发生错误。

看下面的对比图,一目了然。
图片描述
图片描述

正在回答 回答被采纳积分+3

1回答

提问者 HHHHHHHHHTTTTIGER 2022-07-02 18:31:20

排查了一轮,这个问题是这个项目的普遍问题,简单来说就是本地的golang_common包跟go get下来的golang_common不一样,从而导致了很多问题。看了一些别人提问的问题,比如没有gorm.DB.SetCtx这个问题也个原因导致的。

很显然老师更新过一版golang_common,把里面引用的一些包改成了通用的包,而不是自己的包。

要解决这个问题也很简单,从go_gateway(就是github上面的项目)里面把golang_common复制到你的项目里面,如果已经用go get引入了golang_common包的话,就全局替换未上面相对路径的本地的golang_common,同时可能会有部分方法出问题,比如加载配置文件的方法InitModule,这个可以自己解决一下。

不得不吐槽一下,目测老师是这门课程推出之后(起码是2022年后),想把这个通用的包作为一个更通用的基础包放上github,不过没有做好跟课程的兼容,实属不应该。


1 回复 有任何疑惑可以回复我~
  • 大家有这个问题的,先检查一下配置文件中数据库密码有没有改过来吧。我对比了 go_gateway/golang_common 和原来的 golang_common 的代码,应该是没有什么大的差别的。改了数据库密码就能拿到 gormPool 了
    回复 有任何疑惑可以回复我~ 2022-09-20 13:34:25
  • prove_ #2
    是的,有点坑哇,快400的课程
    回复 有任何疑惑可以回复我~ 2023-01-25 00:43:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信