Golang Go语言中现在哪个 ORM 比较成熟靠谱
RT
符合生产级别的
如果有多个符合条件的,就按优雅, 漂亮来排个序, 各位都用哪些的。
打算用 gin 这个 web 框架, 只好这些其他模块都自己凑进去了
Golang Go语言中现在哪个 ORM 比较成熟靠谱
gorm 怎么样?
mysql 用 xorm 挺好的,文档很不错,基本上看下文档就没有什么问题要问了。要说缺点就是数据库 json 格式支持了。
mongo 就是 mgo ,这个应该没争议了。
gorm 没用过。
看了下 xorm ,文档不怎么清晰。 也没提 Models 方面的,比较了下 gorm 的文档, 很清楚,只要看看示例基本已经知道怎么用了。 http://jinzhu.me/gorm/models.html#model-definition , model 定义方式也跟 python 系下的很像。
gorm 貌似不支持 bulk insert 啊
xorm 我一般是偷懒用 http://gobook.io/read/github.com/go-xorm/manual-zh-CN/chapter-13/ 自己改了一个,先做表然后直接生成结构体使用。基本上很少手写…
我这边产品直接用的 beego 的 orm
我表示 bulk 用的情况不多, 写脚本什么的可能更多情况用到写。 gorm 有 batch update 足够了。
beego 的 orm 还不错, 作者就是照着 django 的 orm 写的, 语法看着很熟悉感
目前用 gorm ,不过要注意下哦,之前好像没有发正式的版本,所以有时候一些改动,类型直接变了。。。
要注意下- -
xorm
谢谢, 这么坑呢。类型映射不是就那么点类型数量么, 应该不会经常改吧
之前遇到过的是,原来实例化的一个 DB 不是一个指针,后来有次更新了是指针了,然后我那个项目有人就反应编译不过。。。
我之前用因为没有发正式版所以这些改动也不怪开发, go 的包管理也有锅,没有带版本号。。
不过如果有发正式版应该是不会有这种改动了。。
只用了 beego 的 orm 还可以,可以方便的切换数据库驱动和分库,其它的不知道。 beego 的 orm 目前我遇到的问题就是对复合索引不支持。
在用 beego 自带的那个,懒得折腾其他的了
gorm 文档挺不错, 比看中文的 beego 文档还容易理解。
Gin 一年没更新了。项目写了一半全迁过去 Echo 了。楼主保重! BTW : GORM 要多看 issues
楼主给你推荐一篇文章,刚看完,感觉不错: http://engineroom.teamwork.com/go-learn/
里面就有提到 gorm ,还有对它的看法
你遇到对复合索引不支持的问题是指哪方面不支持呢?
[beego orm]( http://beego.me/docs/mvc/model/models.md#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%B4%A2%E5%BC%95)
欢迎给我们提 issue 和建议 :)
不好意思,记错了其实是复合主键
https://github.com/astaxie/beego/issues/1493
在用 beego orm 作者一直在维护
xorm,你值得拥有,另不知道你说的文档清晰是什么才算清晰,我觉得挺好的,不懂得可以自己去翻源码或者写小 demo 试试不就知道了.PS: xorm 作者人很不错,赞一个:-)
echo 谨慎使用…尤其 v2
Echo 挺好的,有坑至少作者还在…
没一个真正好用的,如果你拿 python 的 orm 来比的话
现在勉强在用 gorm
v2 现在 API 变化比较快,之前有遇到 delete 获取参数不正确的问题,建议生产别那么快上吧
其实 v2 我也觉得挺好
很快啦,, Beta 了已经…
一年没更新是指新 feature 还是说维护 commit ? 我看他们最近一直有提交
没有 Feature 都是社区的 Bugfixes 或者是 Test cases
刚说完六小时前又改了 API 鸟。
在用 xorm
GORM 作者在这里。。。。。
GORM 从发布到现在已经 2 年多了,都没有改 API 很良心了。。。。这次发布 1.0 ,改了 API 让你们编译不过,不在正式环境下出错不是更良心么。。。。。。 @.@
qor project fight!
你有在用 qor 了么 ;)
是的 XD
v1.0 定稿后的下载链接或者分支有吗?
有时间可以写个文章讲讲看看你们的使用情况哈。。。。
这么管理软件,有个 commit hash 不就够了么 https://github.com/golang/go/wiki/PackageManagementTools
过一段时间我给加个 tag
好的 ,不过现在完成度还比较低. 可能还需要些时间
commit hash 没找到呃… 在哪里?
commit hash 就是 commit 的 hash 值啊。。。。
我是问你 v1.0 定稿时的 “ commit 的 hash 值 ” 是什么?
gorp 可以用用
在Golang(Go语言)生态中,有多个成熟且靠谱的ORM(对象关系映射)框架可供选择。以下是一些推荐的ORM框架:
-
GORM:
- 是Go语言中最受欢迎的对象关系映射(ORM)库之一。
- 提供了简单的API,支持多种数据库,如MySQL、SQLite、PostgreSQL等。
- 内置事务支持、自动迁移、查询构建器等功能。
- 文档完善,社区活跃,适合各种规模的Web应用程序开发。
-
XORM:
- 轻量级但功能强大的ORM库。
- 提供了高性能的数据库操作,支持分布式数据库集群、数据分片和读写分离。
- 适用于需要进行大规模数据处理的场景。
-
Gorp:
- 简单易用,支持多种数据库。
- 允许开发者自定义结构体和数据库表之间的映射关系。
- 提供了基本的数据库操作,如插入、更新、删除和查询。
- 适用于对ORM功能要求不高的场景。
此外,Beego ORM也是基于Beego Web框架的一个强大ORM工具,支持多种数据库和复杂的查询操作。不过,在选择ORM框架时,建议根据项目需求、数据库类型以及开发者对ORM的熟悉程度来决定。
总的来说,以上ORM框架都是Go语言生态中成熟且靠谱的选择,可以根据项目需求和个人偏好进行选择。