GORM 2.0 从零开始重写,根据过去几年的用户反馈吐槽,做了大量的改进,历经半年终于达成 ;)
详情请参考 Release Note
![]() | 1 SteinsGate 2020-08-31 06:29:33 +08:00 via Android ![]() 好喔 |
![]() | 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 ![]() 诸位大佬,小弟有一问求教,查询记录不存在时,大佬们都是在哪一层处理它呀? 小弟现在是在业务层使用 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 looplj 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 ![]() 居然作者直接来推,现在一直用 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,是我用法不对吗? 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 这个方法 |