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

1. 运行环境

go 1.18

2. 问题描述?

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

3. 您期望得到的结果?

4. 您实际得到的结果?

讨论数量: 12

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

1年前 评论

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

1年前 评论
李铭昕

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

1年前 评论

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

1年前 评论

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

1年前 评论

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

1年前 评论

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

1年前 评论

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

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

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

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

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!