草庐IT

Database_Cleaner

全部标签

database - 使用 ORM 模型而不是正确的数据库建模

我最近继承了一个有趣的数据库建模项目(即缺少一些索引和外键定义)。该项目使用GORM,据我所知,这些模型具有正确定义所有内容的标签。我想不出为什么使用ORM进行数据库“建模”不起作用的原因。我能想到的最接近的是性能,但在这需要运行的规模上,这一点似乎没有实际意义。以这种方式运行有什么缺点吗? 最佳答案 我知道在我的公司做同样的事情的唯一缺点是:互操作性-您需要使用golang来启动和运行所有内容,因此如果您的项目想要在新数据库上使用另一种语言,那就有点奇怪了。复杂的SQL东西-偶尔你会想要使用一个复杂的功能,可能很难为其编写标签(例

database - Go 语言,使用 sqlx.StructScan 扫描嵌入式结构

这个问题在这里已经有了答案:Howtoscanintonestedstructswithsqlx?(2个答案)关闭8个月前。我刚开始学习Go语言。我编写了以下简单程序。在这里,我试图用所有书籍和相关的作者来填充结构。Book结构已嵌入Author结构。packagemainimport("fmt""log""time""github.com/jmoiron/sqlx"_"github.com/lib/pq")typeBookstruct{IDintTitlestringYearintBautherAuther`db:"auther"`}typeAutherstruct{IDintNam

database - 在 Go 中,如何将 bson byte[] 数据解码为结构数组?

当结构数组传递到接口(interface){}时,Unmarshalbsonbyte[]数据到结构数组的最佳方法是什么参数?出于演示目的,在下面的代码中,我在inStructArr上使用bson.Marshal()来获取byte[]类型数据的。这样我就可以使用bson.Unmarshal(...)通过管道传输到outStructArr。import"gopkg.in/mgo.v2/bson"typeUserstruct{Namestring}funcDecodeArrData(inStructArr,outStructArrinterface{}){inStructArrData,_:

乱码 : Database specific annotations

我们正在使用gorm我希望能够指定特定于数据库的注释。为方便起见,在开发/测试中我们使用sqlite3数据库,然后在生产中使用MySQL。不幸的是,sqlite3不接受CHARACTERSET和COLLATE关键字。这意味着以下中断:typeUserstruct{Namestring`gorm:"primary_key;type:varchar(200)CHARACTERSETutf8COLLATEutf8_general_ci"`}有没有人找到解决这个问题的方法?我不想在测试中使用mysql,也不想手动管理列。 最佳答案 这里最好

postgresql - Go database/sql - 重新连接时发出命令

我有一个用Go编写的小应用程序连接到PostgreSQL另一台服务器上的数据库,利用database/sql和lib/pq。当我启动应用程序时,它会检查并确定所有数据库表和索引都存在。作为此过程的一部分,它发出SETsearch_pathTOpreferredschema,public命令。然后,对于其余的数据库访问,我不必指定模式。根据我通过调试确定的结果,当database/sql重新连接时(没有网络是完美的),应用程序开始失败,因为搜索路径不是放。有没有办法指定重新连接时应该执行的命令?我已经搜索了一个可能可以利用的事件,但到目前为止还是空的。谢谢!

database - 在 Golang 中伪造数据库方法

我正在尝试为以下使用Postgres驱动程序在内部进行数据库调用的函数创建单元测试:typeDBerinterface{Exec(querystring,args...interface{})(sql.Result,error)Query(querystring,args...interface{})(interface{},error)QueryRow(querystring,args...interface{})*sql.RowPrepare(querystring)(*sql.Stmt,error)}typeAppInfoCtrlstruct{DBDBer}typeRowerin

database - Go 和 Postgresql 中带有 gorm 的十进制类型

所以我正在创建一个API,我需要存储一些东西的价格。我正在使用gorm和gormigrate进行数据库迁移。我只是想知道我应该使用什么类型来存储小数。我在存储货币时不应该使用float的地方变红了。typeMyStructstruct{Namestring`json:"name"gorm:"notnull"`Descriptionstring`json:"description"gorm:"null"`Price`json:"price"`} 最佳答案 所以,根据@ain的建议,我使用了shopspring/decimal。但是当我

database - 使用 channel 进行并发数据库调用是好的设计吗?

我正在开发一个带有统计页面的网络应用程序(用go编写)。此页面包含多个图表,这些图表使用数据库中的数据进行备份。现在按顺序对数据库进行了多次调用。这是使用channel以并行调用数据库并可能提高性能的好地方吗?无论性能提升如何-在这种情况下使用channel是否被认为是好的设计? 最佳答案 channel本身并不能提高绩效。事实上,channel操作比函数调用要昂贵得多。您应该问自己的是“我应该对数据库进行并发调用吗?”。如果答案是"is",那么您的下一步应该是决定如何构建您的数据库客户端代码以启用它。goroutines肯定会有功

database - Golang-Postgres ..关闭数据库连接不适用于特定查询

我正在使用golang访问postgresql。这是我的功能for{db,err:=database.GetNewConnection(dbname)err=db.QueryRow("SELECTCOALESCE(COUNT(1),0)FROMtable").Scan(&count)ifcount==0{varinsert="INSERTINTOtable(last_update_time,next_update_time,schedule_frequency)"+"VALUES($1,$2,$3)"prep_ins,err:=db.Prepare(insert)iferr!=nil{

database - GAE Go 数据存储 - 忽略一些变量?

假设我首先将此结构保存到数据存储中:typeFoostruct{ImportantstringNotImportantstring}但后来我决定我并不真正关心NotImportant不再支持它了。问题是,我的数据存储区已经填充了数据,我不能只是删除它并用更新的结构替换整个数据库。我知道可以创建自定义加载和保存方法,如Load(c,但这需要在大型结构上付出大量努力。是否有一些简单的方法告诉GoogleAppEngineGo数据存储在保存时忽略一些变量,而不是提示我正在加载数据的结构没有我不再关心的变量? 最佳答案 你可以这样做ifer