golang 的同学现在哪个 ORM 比较成熟靠谱 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
defage
V2EX    Go 编程语言

golang 的同学现在哪个 ORM 比较成熟靠谱

  •  1
     
  •   defage 2016-03-21 14:45:25 +08:00 3774 次点击
    这是一个创建于 3539 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT

    符合生产级别的

    如果有多个符合条件的,就按优雅, 漂亮来排个序, 各位都用哪些的。

    打算用 gin 这个 web 框架, 只好这些其他模块都自己凑进去了

    46 条回复    2016-05-08 12:38:40 +08:00
    yanyuan2046
        1
    yanyuan2046  
       2016-03-21 14:54:53 +08:00
    xorm
    defage
        2
    defage  
    OP
       2016-03-21 15:00:47 +08:00
    gorm 怎么样?
    janxin
        3
    janxin  
       2016-03-21 15:10:30 +08:00 via iPhone
    mysql 用 xorm 挺好的,文档很不错,基本上看下文档就没有什么问题要问了。要说缺点就是数据库 json 格式支持了。
    mongo 就是 mgo ,这个应该没争议了。
    gorm 没用过。
    defage
        4
    defage  
    OP
       2016-03-21 15:27:24 +08:00
    看了下 xorm ,文档不怎么清晰。 也没提 Models 方面的,比较了下 gorm 的文档, 很清楚,只要看看示例基本已经知道怎么用了。 http://jinzhu.me/gorm/models.html#model-definition , model 定义方式也跟 python 系下的很像。
    janxin
        5
    janxin  
       2016-03-21 16:53:22 +08:00
    @defage 你是说定义表结构体方面的话就是这个吧 http://gobook.io/read/github.com/go-xorm/manual-zh-CN/chapter-02/1.mapping.html
    WildCat
        6
    WildCat  
       2016-03-21 16:54:21 +08:00
    gorm 貌似不支持 bulk insert 啊
    janxin
        7
    janxin  
       2016-03-21 16:57:27 +08:00
    xorm 我一般是偷懒用 http://gobook.io/read/github.com/go-xorm/manual-zh-CN/chapter-13/ 自己改了一个,先做表然后直接生成结构体使用。基本上很少手写....
    yougg
        8
    yougg  
       2016-03-21 17:05:24 +08:00
    我这边产品直接用的 beego 的 orm
    defage
        9
    defage  
    OP
       2016-03-21 17:09:54 +08:00
    @WildCat 我表示 bulk 用的情况不多, 写脚本什么的可能更多情况用到写。 gorm 有 batch update 足够了。
    defage
        10
    defage  
    OP
       2016-03-21 17:14:48 +08:00
    @yougg beego 的 orm 还不错, 作者就是照着 django 的 orm 写的, 语法看着很熟悉感
    zts1993
        11
    zts1993  
       2016-03-21 17:33:26 +08:00
    在用 gorm 能接受
    orFish
        12
    orFish  
       2016-03-21 17:40:36 +08:00
    目前用 gorm ,不过要注意下哦,之前好像没有发正式的版本,所以有时候一些改动,类型直接变了。。。

    要注意下- -
    elgoog1970
        13
    elgoog1970  
       2016-03-21 17:41:53 +08:00
    xorm
    defage
        14
    defage  
    OP
       2016-03-21 17:45:51 +08:00
    @orFish 谢谢, 这么坑呢。类型映射不是就那么点类型数量么, 应该不会经常改吧
    orFish
        15
    orFish  
       2016-03-21 17:49:32 +08:00
    @defage
    之前遇到过的是,原来实例化的一个 DB 不是一个指针,后来有次更新了是指针了,然后我那个项目有人就反应编译不过。。。
    我之前用因为没有发正式版所以这些改动也不怪开发, go 的包管理也有锅,没有带版本号。。

    不过如果有发正式版应该是不会有这种改动了。。
    njutree
        16
    njutree  
       2016-03-21 17:50:49 +08:00
    只用了 beego 的 orm 还可以,可以方便的切换数据库驱动和分库,其它的不知道。 beego 的 orm 目前我遇到的问题就是对复合索引不支持。
    missdeer
        17
    missdeer  
       2016-03-21 17:58:37 +08:00
    在用 beego 自带的那个,懒得折腾其他的了
    defage
        18
    defage  
    OP
       2016-03-21 18:08:40 +08:00
    gorm 文档挺不错, 比看中文的 beego 文档还容易理解。
    siteshen
        19
    siteshen  
       2016-03-21 18:55:54 +08:00
    几年前用过 https://upper.io/db Is upper.io/db an ORM? Yes, a very basic one.
    JohnDeng
        20
    JohnDeng  
       2016-03-21 19:17:16 +08:00 via iPhone
    Gin 一年没更新了。项目写了一半全迁过去 Echo 了。楼主保重! BTW : GORM 要多看 issues
    WildCat
        21
    WildCat  
       2016-03-21 19:21:16 +08:00
    楼主给你推荐一篇文章,刚看完,感觉不错: http://engineroom.teamwork.com/go-learn/
    里面就有提到 gorm ,还有对它的看法
    suchj
        22
    suchj  
       2016-03-21 20:26:39 +08:00
    @njutree 你遇到对复合索引不支持的问题是指哪方面不支持呢?
    [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 和建议 :)
    njutree
        23
    njutree  
       2016-03-21 21:04:49 +08:00
    @suchj 不好意思,记错了其实是复合主键

    https://github.com/astaxie/beego/issues/1493
    Comdex
        24
    Comdex  
       2016-03-21 21:41:18 +08:00 via Android
    在用 beego orm 作者一直在维护
    penjianfeng
        25
    penjianfeng  
       2016-03-21 21:48:28 +08:00
    xorm,你值得拥有,另不知道你说的文档清晰是什么才算清晰,我觉得挺好的,不懂得可以自己去翻源码或者写小 demo 试试不就知道了.PS: xorm 作者人很不错,赞一个:-)
    janxin
        26
    janxin  
       2016-03-21 23:34:15 +08:00 via iPhone
    @JohnDeng echo 谨慎使用…尤其 v2
    JohnDeng
        27
    JohnDeng  
       2016-03-21 23:53:50 +08:00 via iPhone
    @janxin Echo 挺好的,有坑至少作者还在...
    jjx
        28
    jjx  
       2016-03-21 23:59:34 +08:00
    没一个真正好用的,如果你拿 python 的 orm 来比的话

    现在勉强在用 gorm
    janxin
        29
    janxin  
       2016-03-22 08:05:52 +08:00
    @JohnDeng v2 现在 API 变化比较快,之前有遇到 delete 获取参数不正确的问题,建议生产别那么快上吧
    其实 v2 我也觉得挺好
    JohnDeng
        30
    JohnDeng  
       2016-03-22 08:10:10 +08:00 via iPhone
    @janxin 很快啦,, Beta 了已经...
    defage
        31
    defage  
    OP
       2016-03-22 08:50:55 +08:00
    @JohnDeng 一年没更新是指新 feature 还是说维护 commit ? 我看他们最近一直有提交
    JohnDeng
        32
    JohnDeng  
       2016-03-22 10:58:01 +08:00 via iPhone
    @defage 没有 Feature 都是社区的 Bugfixes 或者是 Test cases
    JohnDeng
        33
    JohnDeng  
       2016-03-22 10:58:28 +08:00 via iPhone
    @janxin 刚说完六小时前又改了 API 鸟。
    jdlau
        34
    jdlau  
       2016-03-22 11:34:06 +08:00 via Android
    在用 xorm
    jinzhu
        35
    jinzhu  
       2016-03-22 14:39:35 +08:00   1
    GORM 作者在这里。。。。。

    GORM 从发布到现在已经 2 年多了,都没有改 API 很良心了。。。。这次发布 1.0 ,改了 API 让你们编译不过,不在正式环境下出错不是更良心么。。。。。。 @.@
    ikaros
        36
    ikaros  
       2016-03-22 19:46:21 +08:00
    @wosmvp qor project fight!
    jinzhu
        37
    jinzhu  
       2016-03-23 10:28:37 +08:00   1
    @ikaros 你有在用 qor 了么 ;)
    ikaros
        38
    ikaros  
       2016-03-23 13:15:27 +08:00   1
    @jinzhu 是的 XD
    darasion
        39
    darasion  
       2016-03-23 14:07:21 +08:00
    @jinzhu v1.0 定稿后的下载链接或者分支有吗?
    jinzhu
        40
    jinzhu  
       2016-03-23 15:06:57 +08:00   1
    @ikaros 有时间可以写个文章讲讲看看你们的使用情况哈。。。。
    jinzhu
        41
    jinzhu  
       2016-03-23 15:08:01 +08:00
    @darasion 这么管理软件,有个 commit hash 不就够了么   https://github.com/golang/go/wiki/PackageManagementTools  

    过一段时间我给加个 tag
    ikaros
        42
    ikaros  
       2016-03-23 15:32:58 +08:00
    @jinzhu 好的 ,不过现在完成度还比较低. 可能还需要些时间
    darasion
        43
    darasion  
       2016-03-23 16:17:17 +08:00
    @jinzhu commit hash 没找到呃... 在哪里?
    jinzhu
        44
    jinzhu  
       2016-03-24 09:56:42 +08:00
    @defage commit hash 就是 commit 的 hash 值啊。。。。
    darasion
        45
    darasion  
       2016-03-24 10:27:35 +08:00
    @jinzhu 我是问你 v1.0 定稿时的 “ commit 的 hash 值 ” 是什么?
    2goo
        46
    2goo  
       2016-05-08 12:38:40 +08:00
    gorp 可以用用
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2568 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:21 PVG 13:21 LAX 21:21 JFK 00:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86