使用gorm是否必须建表模型 struct呢

1. 运行环境#

go 1.18

2. 问题描述?#

由于我之前是做 php 的,然后 model 直接就操作数据库增删改查了,
现在转到 go,看文档都是用模型定义创建表 然后在操作
请教这时为什么呢,直接在 navicat 中建表不是更快吗,也方便
这么操作是有什么好处吗,可以像 php 一样直接操作吗,比较迷茫
因为也是属于初学,不知道 go 大家是不是都预定俗成的需要这样

3. 您期望得到的结果?#

4. 您实际得到的结果?#

讨论数量: 12

就是数据库迁移,可以用代码管理数据库表结构变更,不需要的话直接 navicat 建表也是可以的

2年前 评论

curd 都差不多的 逻辑不便语法变了而已,可以直接操作数据库 看自己如何选择罢了,不一定要创建模型才能操作数据库,好好看文档 :joy:

2年前 评论
李铭昕

写个脚本生成一下就行了,很简单的

2年前 评论

不建也行吧,但是你要操作数据库的时候,需要的结构体,那是不是还要再写一遍。

2年前 评论

www.gotool.top/handlesql/sql2gorm 根据 sql 生成 gorm 所需的模型, :grin:

2年前 评论

粗劣个人感受就是 struct 提前把数据 映射字段定义好 User.Name IDE 会提示 使用很方便 PHP array User ["name"] 十个地方用 “name” 就得写十次 各有各的好

2年前 评论

用工具生成,github.com/go-home-admin/toolset 这个可以生成跟 laravel 一样的 orm

2年前 评论

看到你说直接在 navicat 创建表,盲猜你用 php 时候应该也不是使用数据库迁移工具进行数据库变化控制的。 既然是 php 过来的,那就直接上链接。数据库迁移《Laravel 9 中文文档》 laravel 里边说的挺明白的

file。其实数据库迁移还是很方便的。不仅仅是团队合作,哪怕是开发环境和运行环境中都可以做到一键同步。试想一下,开发环境修改了某个表的某个字段,线上环境还要手动去修改。时间久了或者修改的多了 就容易出错和忘记。所以建议还是先了解一下数据库迁移。

2年前 评论
paigusu (楼主) 2年前
joker_hu (作者) 2年前
phpfriend_xu 2年前

可以的 老哥 我也做 php 不声明 model 可以这样写
var userList []map[string]interface{} database.GORMDB.Table("user").Select("user_id,user_name").Find(&userList)

2年前 评论