GORM 2.0 从零开始重写,根据过去几年的用户反馈吐槽,做了大量的改进,历经半年终于达成 ;)
详情请参考 Release Note
1
SteinsGate 2020-08-31 06:29:33 +08:00 via Android 1
好喔
|
2
snxq1995 2020-08-31 06:47:14 +08:00 via Android
赞👍
|
3
lrh3321 2020-08-31 06:56:28 +08:00 via Android
update 的时候,忽略 limit 和 order by 的问题还存在吗?
|
4
gigantic222 2020-08-31 07:59:13 +08:00
猛
|
5
kemikemian 2020-08-31 08:16:29 +08:00
赞赞赞!!!
|
6
kemikemian 2020-08-31 08:22:19 +08:00
终于加入了批量新增
|
7
paullee 2020-08-31 08:51:04 +08:00 2
诸位大佬,小弟有一问求教,查询记录不存在时,大佬们都是在哪一层处理它呀?
小弟现在是在业务层使用 gorm.isRecordNotFound()对 gorm 查询返回的错误判断一记,之前也尝试过在查询方法中返回(*data, *error),将记录未找到的错误场景处理为返回(nil, nil)。两种都感觉怪怪的。 |
8
momowei 2020-08-31 08:53:26 +08:00
牛,项目正好用 1 刚开始,切换到 2 看看
|
9
wsseo 2020-08-31 09:02:49 +08:00
在线等 3.0
|
10
Yoock 2020-08-31 09:08:10 +08:00 via iPhone
一会试试
|
11
waising 2020-08-31 09:17:32 +08:00
支持一波
|
12
cloudzhou 2020-08-31 09:25:44 +08:00
我对 gorm 最大的体验是,作者应该有很强的函数化编程背景,所以很重度使用函数化,各种 hook
而我对于中间件类型代码,是很反对函数化 我对中间件类型代码的要求,就是 Go 本身源代码,我一眼看下去就知道在做什么 |
13
aladdindingding 2020-08-31 09:31:51 +08:00
顶!
|
14
zhaoxj58 2020-08-31 09:36:36 +08:00 via iPhone
赞楼主👍
|
15
FEDT 2020-08-31 09:49:42 +08:00
赞一个~
|
16
securityCoding 2020-08-31 10:06:42 +08:00
@cloudzhou jinzhu 什么背景啊,很强...
|
17
dany813 2020-08-31 10:08:11 +08:00
厉害
|
18
Hanggi 2020-08-31 10:13:23 +08:00
已经在用了
|
19
guanhui07 2020-08-31 10:16:22 +08:00
赞赞赞!!!
|
20
pkoukk 2020-08-31 10:16:32 +08:00
用 v1 的项目写到一半,周一来一看更新到 v2 了,我是迁移还是不迁移呢
|
21
ghjacky 2020-08-31 10:17:24 +08:00
一直在用 gorm,赞👍!!!
|
22
ylsc633 2020-08-31 10:26:32 +08:00
不知道多对多查询 那个问题还存在不
不过 还是赞一个 |
23
jamry 2020-08-31 10:31:56 +08:00
顶一个
还在等大牛推出稳定的 oracle dialector |
24
Hancock 2020-08-31 11:02:33 +08:00
批量终于来了😭
|
25
qxqsxbd 2020-08-31 11:19:37 +08:00
刚上线个项目用了 v1
|
26
labulaka521 2020-08-31 11:28:51 +08:00
赞
|
27
blless 2020-08-31 11:35:00 +08:00 via Android
delete 的时候没有参数还会把整张表删掉吗?当年因为这个事一直不敢用 gorm
|
28
blless 2020-08-31 11:36:46 +08:00 via Android
应该说删除的时候,因为默认结构体没有赋值,所以一不小心就把整表删了
|
29
Kr98 2020-08-31 11:43:16 +08:00 via Android
@blless update 也有这种问题,我一开始的理解是这种情况应该返回错误,结果 gorm 直接对整张表进行操作
|
30
ZSeptember 2020-08-31 11:50:11 +08:00
很喜欢 gorm 的设计,完全的插件化,定制化太强了额。对我自己项目的设计也有很大的启发。
|
32
zackkson1991 2020-08-31 12:55:25 +08:00
赞!
|
33
imherer 2020-08-31 13:45:18 +08:00
@paullee 我一般的是在 model 层处理
我一般的做法是:例如用 UID 查询,当记录不存在的时候返回 nil,同时 user.UID = 0,上一次判断 user.UID 是否等于 0 来判断记录存不存在 不过感觉好像也不是很好 |
34
dcalsky 2020-08-31 13:49:31 +08:00
Preload("articles")以前如果是空会返回空数组,现在直接变 null 了。感觉有问题
|
35
justin2018 2020-08-31 13:50:41 +08:00
|
36
kosgug 2020-08-31 13:57:38 +08:00 via iPhone 1
居然作者直接来推,现在一直用 entgo,有没有对比过
|
37
owenliang 2020-08-31 13:59:57 +08:00
支持,一直在用。
|
38
blackeeper 2020-08-31 14:07:46 +08:00
一直在用,作者牛皮!
|
39
yiplee 2020-08-31 14:55:46 +08:00
升级之后手动创建 index 的方法 db.AddIndex 和 db.AddUniqueIndex 找不到了
|
41
hduwillsky 2020-08-31 15:46:58 +08:00
Jinzhu 大佬 NB
|
42
jinzhu OP @lrh3321 已经修复了,需要使用最新的 mysql driver,不过这种特性只有 mysql 支持,其它数据库都不可以
|
44
jinzhu OP @cloudzhou 函数化为了提供一些扩展可能性,在一些场景下还是挺需要的,不过排斥这个的话也没有关系,甚至可以用 GORM 的 raw sql 模式,他对 named argument 之类的支持应该也比其它的 sql builder 好一些,并且也不重
|
46
jinzhu OP @blless V1 有个 BlockGlobalUpdate 模式,可以启用这个模式就不会了,V2 现在是默认选项了,默认不会删除 /更新全表
|
49
jinzhu OP @Kr98 V1 有个 BlockGlobalUpdate 模式,可以启用这个模式就不会了,V2 现在是默认选项了,默认不会删除 /更新全表
|
51
jinzhu OP @yiplee 现在 migrator 更强大了, 参考 https://gorm.io/docs/migration.html
|
52
dobelee 2020-08-31 19:14:34 +08:00 via iPhone
每天都在代码里看到大佬的 ID 。膜拜一下。
|
53
tomtiddler 2020-08-31 20:09:44 +08:00
看了下文档,不创建外键的情况下还是无法使用关联是吗。。。😓
|
54
tomtiddler 2020-08-31 20:11:44 +08:00
哦,支持不创建外键了。。。看到了,藏得有点深。😺
|
55
zibber 2020-08-31 21:19:21 +08:00
各位,分表有什么最佳实践
|
56
jinzhu OP @zibber 使用 Scopes 这个方法来分表,其它读写分离之类的可以参考 https://gorm.io/docs/dbresolver.html
|
57
lekai63 2020-08-31 22:25:37 +08:00 via iPhone
v2 版本 beta 的时候就开始用啦 :)
|
58
yrj 2020-08-31 23:52:45 +08:00 via iPad
支持链式设置表别名了嘛,我记得 v1 是不行的
|
59
fy 2020-09-01 00:41:26 +08:00
近距离接触大佬,支持一下
|
60
mscb 2020-09-01 06:34:57 +08:00 via Android
请问一下,就是 gorm 里面的 offset 和 limit 它们要求传入的是 int 型。可是表行数有可能会超过 int 的范围,按理说应该得接受传入 int64 比较合理。请问这边这样设计是有啥原因吗?
|
62
qs2d 2020-09-01 08:49:27 +08:00
一直在用,果断升级
|
63
chengxiao 2020-09-01 09:52:33 +08:00
支持下,不过什么时候 Oracle 能被支持呢?最近被 Oracle 折腾的死去活来的
|
64
mscb 2020-09-01 09:53:09 +08:00 via Android
@lrh3321 我知道过大的 offset 会有性能问题,但是这不应该是我考虑的事情嘛?底层通用框架的话不应该管的这么宽啊~期待作者回复
|
66
jinzhu OP @chengxiao 有个相关 PR https://github.com/go-gorm/gorm/pull/3338 , 可以帮测试下看看
|
67
andyangyu 2020-09-01 10:57:14 +08:00
有没有升级需要注意的事项呢?
|
68
wangdk23411 2020-09-01 11:04:53 +08:00
赞,赶紧测试
|
69
jinzhu OP |
70
skadi 2020-09-01 11:41:55 +08:00
终于 v2 了么? 隐藏坑点有讲明么?
|
72
hijoker 2020-09-01 12:40:10 +08:00
批量插入终于支持了么
|
73
tozp 2020-09-01 12:45:37 +08:00
可以用在生产环境了嘛?
|
74
ooh 2020-09-01 13:23:32 +08:00
所以可以获取 SQL 查询语句了?
|
75
JeromeCui 2020-09-01 13:41:29 +08:00
牛逼牛逼
|
76
barbery 2020-09-01 14:09:56 +08:00
不错不错,go 的项目一直用这个库
|
77
jinzhu OP |
78
vZexc0m 2020-09-01 15:56:46 +08:00
|
79
windghoul 2020-09-01 17:34:07 +08:00
好哦~
|
82
tairan2006 2020-09-02 00:27:49 +08:00 via Android
我其实一直有个疑问,楼主为啥 id 叫金主(
|
83
yianing 2020-09-02 01:41:31 +08:00 via Android
@lrh3321 今天就遇见这个问题了😂更新一下 gorm.io/driver 就行了
|
84
petelin 2020-09-02 08:20:43 +08:00 via iPhone
是我在各个语言里遇到的最难用的 orm 。
而且因为 start 太多 导致其他人不愿意去写一个类似的库。毕竟这个东西更大消耗是在维护上。 我怀疑作者根本没看过其他 orm 的实现,或者一开始没有投入什么精力,一厢情愿的提供了零碎的东西,写着玩玩,可以称之为玩具。敢用在生产环境也的人也是疯了。 只针对 gorm1,gorm2 还没看。 |
85
jinzhu OP @petelin Go 的 ORM 还真不少
> 我怀疑作者根本没看过其他 orm 的实现,或者一开始没有投入什么精力,一厢情愿的提供了零碎的东西,写着玩玩,可以称之为玩具。敢用在生产环境也的人也是疯了。 现在可以直接喷,不列证据了么? |
88
LudwigWS 2020-09-02 13:30:55 +08:00
大佬我插个题外话。
你现在都转用 Jetbrains 的产品呢了么。这几年 Emacs 和 Vim dot file 都没怎么更新。以前看到你说从 Vim 转 Emacs 了,现在是不是又回去 Vim 了。纯属好奇。😂 |
89
jinzhu OP @LudwigWS 现在 tmux + vim 用的挺爽的。。。之前 emacs 试了一段时间,可能单进程的原因导致经常卡,就回到 vim 了,现在个人配置文件放私有仓库了... 所以没更新。。。
|
90
blakejia 2020-09-02 15:50:13 +08:00
最新版本啥时候发布呢?遇到了这个问题。看到是已经解决了。但是没发
Gorm writes wrong SQL when trying to alter existing column for PostgreSQL https://github.com/go-gorm/gorm/issues/3339 |
91
KickAssTonight 2020-09-02 16:13:09 +08:00
支持,可以在查询前 WithContext 了!
|
94
blakejia 2020-09-03 14:29:00 +08:00
|
95
ysongyang 2020-09-03 16:28:13 +08:00
自定义预加载报错:invalid query condition,是我用法不对吗? https://www.v2ex.com/t/703904#reply0
|
96
ccxx 2020-09-06 12:48:12 +08:00 via iPhone
@jinzhu 请问查询单个字段怎么 scan 到变量而不是结构体,文档的例子 scan 到 int 类型的变量可以,但是数据库查询 varchar 的字段 scan 到 steing 类型的变量不行。
|
97
Aoang 2020-09-26 17:03:02 +08:00 via Android
|
98
jinzhu OP |
99
wuqingdzx 2020-11-19 10:32:01 +08:00
1.20.6 还没有 CreateInBatches 这个方法
|