gorm-oscar部署

1、go-aci部署

部署go-aci,go-aci的部署参照“Go-ACI程序员开发指南”章节中的环境部署 。

2、oscar包部署

将$SZ_OSCAR_HOME/drivers/go-aci/orm/gorm/dialects的oscar包复制到GOLANG安装目录下的src目录中,这样任何路径下的项目都能直接找到oscar包。

提示

go-aci和oscar包都放置在GOLANG安装目录下的src目录下,都成了golang的内置包,不用再在go.mod中对go-aci和oscar做replace之类的路径替换操作。 另外oscar包中的oscar.go有import _ go-aci,表明oscar会调用go-aci。

3、初始化项目

初始化项目,生成go.mod。

go mod init myproj

提示

因为需要go.mod,所以需将go环境变量的GO111MODULE打开。

4、运行程序

a、运行程序前,如当前测试项目结构如下

../../../../../_images/img110.png

go.mod内容如下:

../../../../../_images/img22.png

gorm_oscar_test.go为oscar的测试文件,文件中导包情况如下图:

../../../../../_images/img31.png

提示

因为oscar包中的oscar.go中有import _ go-aci,所以主程序中导入了oscar后就无需额外导入go-aci。其中主要是需要导入gorm包,其他包根据自己需要导入。

b、运行主程序,初次自动生成go.mod文件

程序执行命令:

go test gorm_oscar_test.go -v
../../../../../_images/img41.png

运行程序,会自动把程序需要的包加入到go.mod文件里。 这步会报错,报错如图:

../../../../../_images/err1.png

这是因为自动生成的go.mod中的gorm版本高了,建议gorm的版本使用1.20.1,需要把图中的红色框内的版本号修改为1.20.1

c、再次运行主程序成功

go test gorm_oscar_test.go -v

d、成功效果

../../../../../_images/img51.png

警告

当运行程序,会根据主程序中需要的依赖包自动下载包,同时会修改项目中的go.mod文件,需要确保自动生成的go.mod里gorm的版本不高于1.21,测试环境下gorm的版本为v1.20.1。

部署中常见错误

  • 错误1
../../../../../_images/err1.png

这是因为oscar依赖的gorm版本高了,建议gorm的版本使用1.20.1,需要把go.mod文件里的gorm的版本号修改为1.20.1