草庐IT

GORM Golang 如何优化这段代码

我在我的项目中使用GORM,我想创建类似数据库管理页面的东西。要加载记录,我发送带有参数的GET:category:"name",//databasetablename在服务器上我有下一个代码:funcLoadItems(db*gorm.DB,categorystring)interface{}{varitemsinterface{}loadItems:=func(iinterface{}){err:=db.Find(i).Erroriferr!=nil{panic(err)}items=i}switchcategory{case"groups":varrecords[]*models

go - Gorm 中的 many2many,真的

我正在尝试在gorm中使用多对多关系。但是,该示例是部分片段,我尝试创建类似示例片段的尝试失败了。packagemainimport("github.com/jinzhu/gorm"_"github.com/mattn/go-sqlite3")typePartstruct{gorm.ModelNamestring}typeMachinestruct{gorm.ModelNamestringSubtasks[]Part`gorm:"many2many:parts;"`}funcmain(){//Connecttothedatabasedb,err:=gorm.Open("sqlite3"

mysql - 尝试从模型创建表时出错

我今天开始玩gorm,但不幸的是遇到了一些愚蠢的错误,并坚持了一段时间。起初我在Windows上运行MySQL5(5.0.51b)和最新版本的go。我确实获得了gorm和mysql驱动程序并且它编译没有错误并且能够连接(可能),但是每当我尝试根据声明的类型创建一个表时它会抛出一个没有信息的错误(因为错误是由MySQL抛出)。这是我的代码:mport("fmt"_"github.com/go-sql-driver/mysql""github.com/jinzhu/gorm")typeUserstruct{idint}funcmain(){db,err:=gorm.Open("mysql"

go - 无法在 go lang 中分配 *gorm.DB

我正在尝试从gorm.Open()返回一个实例,返回它我收到以下错误controllers/db.go:34:cannotassign*gorm.DBtodc.DB(typegorm.DB)inmultipleassignment这是db.goControllerpackagecontrollersimport(//"fmt"_"github.com/go-sql-driver/mysql"//v"github.com/spf13/viper""github.com/jinzhu/gorm")typeDBControllerstruct{DBgorm.DB}func(dc*DBCont

mysql - 全选在 golaong gorm 中不起作用

我正在使用gin框架并尝试使用grom进行crud操作。我正在尝试从MYSQL数据库中获取数据。我有db.go来获取数据库实例,每个表和模型的一些Controller我有一个这样的模型typeCampaignsstruct{IDint`json:"id"form:"id"gorm:"column:CampaignID"`UserIDint`json:"userId"form:"userId"gorm:"column:UserID"`Namestring`json:"name"form:"name"gorm:"column:Name"`StartDatetime.Time`json:"s

GO GORM .Related() 构造不适用于非默认主键名称。

使用“默认”主键命名约定时:POSTGRES表CREATETABLEperson(idSERIAL,namevarchar(255)NOTNULL,CONSTRAINTperson_pkPRIMARYKEY(id))CREATETABLEemail(idSERIAL,person_idintNOTNULLREFERENCESperson(id),CONSTRAINTemail_pkPRIMARYKEY(id))根据示例,此.Related()构造工作正常:typePersonstruct{IDintNamestringEmails[]Email}typeEmailstruct{IDin

go - 无法创建与 gorm 的外键关系,其中字段名称!= 类型名称

我试图在我的应用程序中创建一个“属于”关系,其中字段名称(和数据库列)与类型名称不同。Gorm正在提示这个。这是一个演示问题的简短示例:packagemainimport("fmt""github.com/jinzhu/gorm"_"github.com/mattn/go-sqlite3")typeCarstruct{gorm.ModelOwnerUserOwnerIDint}typeUserstruct{gorm.Model}funcmain(){db,_:=gorm.Open("sqlite3","test.db")deferdb.Close()db.LogMode(true)db

GORM pq 连接太多

我在我的项目中使用GORM,一切都很好,直到我收到一个错误:pq:sorry,toomanyclientsalready我只是使用默认配置。错误发生在我对我的应用程序做了很多测试请求之后。并且在我重新启动应用程序后错误消失了。所以,我认为在我完成查询后GORM连接不会被释放。我没有对GORM代码进行足够深入的检查,我只是在这里问一下,也许有人已经体验过了? 最佳答案 您收到的错误消息是PostgreSQL错误,而不是GORM。这是因为您多次打开数据库连接造成的。db,err:=gorm.Open("postgres","user=g

sqlite - 在 Go GORM 中显示 Foreign Keys 的 Foreign Keys

我可以通过thiscase部分解决这个问题不幸的是,Preload()函数似乎无法在相关对象集中进行更深入的研究。澄清一下,我有以下模型:typeRoomstruct{gorm.ModelNamestringGames[]Game`gorm:"ForeignKey:RoomID"`}typeGamestruct{gorm.ModelRoomIDint`gorm:"index"`Players[]Player`gorm:"ForeignKey:GameID"`}typePlayerstruct{gorm.ModelNamestringGameIDint`gorm:"index"`}当我使

go - 如何切换数据库连接并将其共享到 Golang 中的模型? (Revel + Gorm)

我想像https://github.com/thiagopradi/octopus这样设置数据库分片在Revel+Gorm(或Golang中的任何其他ORM)中。我将在securityfilter中获取数据库连接字符串(这是一个自定义过滤器,添加在revel的参数过滤器之后)。现在我需要在下一个名为dbfilter的自定义过滤器中切换数据库连接并且还需要在revel应用程序启动时实现数据库连接池。 最佳答案 首先是在初始化时准备好数据库连接(只调用一次):db1,err:=gorm.Open(dbdriver,dboption)//