草庐IT

database_inventory

全部标签

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

sql - Go 中的 Postgres 列表参数(使用 database/sql 和 pq)

我正在尝试编写一个采用列表参数(即,作为值列表的单个参数)的查询。看来这至少有时在Postgres中是可能的(https://stackoverflow.com/a/10829760/836390)。我想要的是这样的:rows,err:=db.Query("SELECT*FROMtableWHEREidin$1",[]int{1,2,3})但是,当我使用pq执行此操作时驱动程序,我得到一个错误:sql:convertingExecargument#0'stype:unsupportedtype[]int,aslice这是pq还不支持,还是database/sql不支持,或者Postgr

database - gobuffalo 是否能够自动生成我的表格?

我有这样的结构:typeUserstruct{IDintCreatedAtintUpdatedAtintDeviceUniqueIdentifierstringSessions[]Session`has_many:"sessions"`}我不知道如何在fizz中导出它,所以我这样做了:buffalopopgeneratemodelUser令我惊讶的是,它实际上生成了一个User并在数据库中放入了一张表,但是无论是表还是结构都不是预期的。这是新的用户结构:...typeUserstruct{IDuuid.UUID`json:"id"db:"id"`CreatedAttime.Time`j