草庐IT

go - 如何在 golang 中使用 GORM 连接到 Microsoft SQL Server?

我正在尝试使用GORM连接到MicrosoftSQL服务器:https://github.com/jinzhu/gorm但是当我尝试使用db.HasTable()时我似乎找不到任何表并且我检查了没有问题的凭据。我确实收到了一条消息,说GORM没有正式支持MSSQL,它以兼容模式运行,但我还包括了一个SQL驱动程序:github.com/denisenkom/go-mssqldb用于MSSQL。有什么我想念的吗? 最佳答案 我发现我的错误,我导入了错误的MSSQL驱动程序,gorm已经有一个import_"github.com/jin

go - 如何在gorm中实现预加载

我正在使用gorm.我有一个问题,希望有人能帮我解决或解释更多相关信息typeUserstruct{IDintNamestringAddresses[]Address}typeAddressstruct{UserIDint`gorm:"index;notnull"`AddressstringCitystringZipcodeintCountrystring}iferr:=db.Select("name").Preload("Addresses").Find(&users).Error;err!=nil{//Displayerrormessage}else{//}结果:[{"create

mysql - 如何在 Go-Gorm 中禁用默认错误记录器

我在MySQL中使用GORM,我遇到并处理了错误Error1062:Duplicateentry。问题是它仍然打印到控制台。gym/models/auth.go:49中的代码:funcAddAuth(username,passwordstring)error{passwordHash,err:=auth.HashPassword(password,argon2Conf)iferr!=nil{returnerr}userAuth:=Auth{Username:username,Password:passwordHash,}returndb.Create(&userAuth).Error}

mysql - gorm.DB 可以自动解析外键吗?

我正在尝试使用https://github.com/jinzhu/gorm自动为我映射外键,但不知何故,要么我做错了,要么图书馆做不到,我错了。我有以下结构:typeCurrencystruct{IDuint64`gorm:"primary_key"`CurrencyCodestring`gorm:"size:3"`}typeRatestruct{IDuint64`gorm:"primary_key"`CurrencyIDuint64CurrencyCurrency`gorm:"ForeignKey:CurrencyID"`Pricefloat64}和以下SQL表(经过编辑以便curr

go - 如何使用 GORM 创建或更新记录?

Gorm有一个FirstOrCreate方法和一个FirstOrInit但是如何检查记录是否真的被创建了呢?如果记录不存在,我想创建一条记录,如果存在,我想更新一些字段。 最佳答案 更新2020.10.09感谢@vaelin从1.20.x开始,GORM为不同的数据库提供兼容的Upsert支持(Upsert-On-Conflict)//Updatecolumnstonewvalueon`id`conflictDB.Clauses(clause.OnConflict{Columns:[]clause.Column{{Name:"id"}

database - Golang gorm mock

我正在使用gorm在我的项目中。我可以在没有数据库连接的情况下模拟这个数据库orm进行测试吗?问题是我们有CI工具,但我没有数据库或没有足够数据进行测试的数据库。换句话说,我不想在每次测试时都设置一个数据库,因为在这些情况下,CI工具每次都会创建一个容器来运行测试。测试数据库相关方法的最佳方法是什么?我在我的解决方案中使用依赖注入(inject),因此很容易用模拟数据库替换数据库。但是gorm有很多orm相关的功能。这是一个处理程序,例如:functokenIntrospectionHandler(db*gorm.DB)http.HandlerFunc{returnhttp.Handl

postgresql - 在gorm中获取结构中的嵌套对象

我有两个结构:typeGoogleAccountstruct{Iduint64Tokenstring}它代表我自定义的PostgreSQL对象类型(我自己创建的):CREATETYPEGOOGLE_ACCOUNTAS(idNUMERIC,tokenTEXT);下一个结构是数据库中的表:typeClientstruct{IdClientuint64`gorm:"primary_key"`NamestringPhotoUrlstringApprovalNumberuint16PhonestringPasswordstringHoursOfNoticeint8GoogleGoogleAcco

postgresql - 如何在 GORM 中将 PostgreSQL 函数设置为默认值?

我想要这样的东西:typeUserstruct{IDint`sql:"default:"`}GORM可以吗? 最佳答案 你试过了吗?你可以做time.Time`sql:"DEFAULT:current_timestamp"`它将使用“current_timestamp”函数。如果您希望默认值为字符串current_timestamp,您可以这样做time.Time`sql:"DEFAULT:'current_timestamp'"`所以,简而言之,是的,这是可能的。你只需要做:typeUserstruct{IDint`sql:"DE

golang gorm 在保存时更新关联

有没有一种方法可以在保存对象时自动删除关联?像这样:typeParentstruct{gorm.ModelNamestringChildren[]*Child}typeChildstruct{gorm.ModelNamestringParentIDuint}funcmyFunc(db*gorm.DB){p:=&Parent{Name:"foo",Children:[]*Child{{Name:"Bar"},{Name:"Foobar"}}}db.Save(&p)p.Children=p.Children[1:]db.Save(&p)//bothchildrenstillexistint

go - 如何使用 GORM 创建 Postgres 数据库

这主要侧重于为我计划编写的涉及创建数据库的测试套件设置setup()和teardown()方法。我已经弄清楚如何使用GORM创建数据库。但是,我不确定这是否是最佳方法。packagemainimport("fmt""github.com/jinzhu/gorm"_"github.com/jinzhu/gorm/dialects/postgres""log")funcmain(){db,err:=gorm.Open("postgres","host=127.0.0.1port=5432user=superuserdbname=postgrespassword=''sslmode=disa