Gorm 相关,需要动态创建数据表,是不是不太适合使用 ORM 啊?

2022-02-08 15:14:45 +08:00
 inspiration2030

在做一个项目,需要在前端创建数据表。

之前没有这个需求所以用着 Gorm 还挺舒服的,但是加了这个需求后在网上找了好久没找到解决办法。虽然 Gorm 可以执行原生 SQL 语句但是只能用结构体接收结果。

想问一下存不存在解决方案?

目前的思路是反射构造结构体,但是不知道可不可行,而且有点麻烦。

1457 次点击
所在节点    问与答
13 条回复
wangsyi13
2022-02-08 15:39:13 +08:00
还得看具体需求吧,直接 interface{}接,转成 json ,然后根据 json 键取值?
ilylx2008
2022-02-08 15:42:34 +08:00
db.AutoMigrate(&User{})
就能自动创建表
inspiration2030
2022-02-08 16:00:05 +08:00
@ilylx2008 但是表是动态的,没办法提前设定结构体。
inspiration2030
2022-02-08 16:00:59 +08:00
@wangsyi13 有道理,但是已经和 orm 没什么关系了😂
Cheivin
2022-02-08 16:02:07 +08:00
要不 map 一把梭?
darksword21
2022-02-08 16:05:17 +08:00
直接让前段操作数据库!(逃
inspiration2030
2022-02-08 16:06:32 +08:00
@Cheivin Gorm 好像不能单用 map 操作,看文档都得先 Model(&Struct{})。
ilylx2008
2022-02-08 16:17:50 +08:00
@inspiration2030 那就把表改成静态
wangsyi13
2022-02-08 16:19:14 +08:00
@inspiration2030 这需求我感觉是跟 orm 没啥关系
Cheivin
2022-02-08 16:32:27 +08:00
@inspiration2030 建表可能你得用反射,其他数据操作可以通过 Table(string)指定表名,然后 map 接收结果
Trim21
2022-02-08 16:46:02 +08:00
我记得可以用 map 的,文档只是没给例子
inspiration2030
2022-02-08 16:47:44 +08:00
@Cheivin 感谢
inspiration2030
2022-02-08 16:49:54 +08:00
@Trim21 已经看到了,感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/832455

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX