问题标签 [gorp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - Go 和 postgres 将整数重新解释为 nil 类型
我正在尝试获取一些旧代码来通过其单元测试。给我带来问题的测试在这里:
当我运行时go test
,这会返回:
'sql: Scan error on column index 0: converting driver.Value type <nil> ("<nil>") to a int64: invalid syntax'
这很奇怪,因为我传递的是 1,一个整数。设备结构在这里定义:
这是它插入的 Postgres 表的架构:
我已经尝试使用该sql.NillInt64
类型,但这似乎并不能解决问题。感觉好像 gorp、go 或 postgres 以某种方式将整数解释为 nil。作为最终数据点,这一切都在各种 Docker 容器中运行,尽管我认为这个问题与 Docker 无关。有什么见解吗?
postgresql - Postgresql 关闭语句需要很长时间
为了将数百万条记录添加到具有持续内存消耗的 Postgres 数据库中,我使用了一个线程池,其中包含多个工作人员以及一个gorp.Transaction
.
每百万条记录,以下代码从不同的线程调用大约一百次,每次处理一批 10000 条左右的记录:
出于某种原因,我注意到这个过程往往很慢,Prepare
并且Close
调用时间很长。
然后,我尝试对所有调用重用相同的语句,batchCopy
并在所有调用完成后关闭它。在这种情况下,batchCopy
完成速度非常快,但是当我打电话时stmt.Close()
- 它需要很长时间。
问题:
- 声明的正确方法是什么?我应该每批创建一个还是重复使用它们?
- 发生了什么事
stmt.Close()
,为什么在多次致电后需要这么长时间stmt.Exec
?
go - 在使用 go sql 时,在每种类型中重写 Scan 和 Value 方法时避免重复代码
Golan SQL plus Gorp 期望所有类型都包含附加到类型的 Scan 和 Value 方法,以便将 Rows 读取到结构中。这在我的项目中添加了很多样板代码,即使方法可以通用,因为我正在将 JSON 写入这些列。
有没有办法避免为我的每个结构定义所有相同的值和扫描方法?
该表应如下所示:
我尝试使用 @danicheeta 推荐的作文:
但是,如果我对数据库执行插入操作,结果是:
同样,如果我已经在数据库中“手动”插入了这个:
并尝试做一个select * from Type1
我得到的:
go - 如何从另一个函数调用 dbmap.Insert(interface{})?
我有一堆非常相似的结构(示例中的 A 和 B),我想在某些函数(f()
示例中)中处理它们的实例,然后将它们插入到我的数据库中。我想我可以以某种方式用空界面处理这个问题,但似乎这不是解决方案,因为我得到了错误:
我试图创建一些最小但可执行的示例:
这样做的正确方法是什么?在 C++ 中,我会简单地使用模板;)
go - Go Scanner 仍然返回
首先:我是golang的新手,所以我可能不太了解。我的任务是使用“gorp”从一个数据库中编写一个 Go 数据提取器。问题在于一张具有自定义字段“TimeRange”的表。它被定义为:
可悲的是,当我尝试获取行时,我遇到了扫描仪错误,所以我意识到我需要一个自定义扫描仪。
所以我希望在返回的字符串中看到固定的“{mis lala}”。为什么我得到:
印刷:
即:TimeRange、UserName 和 UUID
可能很重要:使用“gorp”进行数据库管理
postgresql - 如何插入切片
我有一个 postgres 数据库,我想为它生成表并使用 Gorp 写入,但是当我尝试插入时收到一条错误消息,因为我的结构中包含切片“sql:转换参数 $4 类型:不支持的类型 [] core.EmbeddedStruct,结构切片。
我的结构如下所示:
有没有人有任何经验/或知道 Gorp 是否支持插入切片?从我读过的内容来看,它似乎只支持 SELECT 语句的切片
database - 添加结构数据中断调用
我正在使用 gorp 和 *DBMap.addTableWithName() 函数来创建表。
如果我有以下情况:
哪个按预期工作。
如果我将结构修改为此
然后表没有用新的结构结构修改。
如果我手动修改数据库
ALTER TABLE s1Table ADD COLUMN extra text;
然后运行我回来的任何查询
sql: Scan error on column index 3, name "extra": converting NULL to string is unsupported
我浏览了 GoDocs 中的 gorp,但没有什么可以作为解决方案。
我的问题是 - gorp 是否可以管理这些表更改?如果不是,那么如何才能不导致converting NULL to string is unsupported
错误。
go - 由 Exec 使用 gorp 更新
我与 gorp 合作,我使用 Exec 来更新和插入。
第一次运行:row = 0 => 插入
第二次运行:模型不更改行 = 0 => 插入
如何用第二次运行的数据替换第一次运行的数据?