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

2022 年 2 月 8 日
 arect

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

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

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

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

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

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

https://v2ex.xtra.eu.org/t/832455

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

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

© 2021 V2EX