如何用GORM v2.0+实现DropTableIfExists

前因#

最近在写测试的时候每次都要自己手动清空之前测试的表,想起之前写SQL语句的时候都会有DropTableIfExists,于是就去百度,看看GORM有没有已经封装好了。

过程#

image-20230218105202489

image-20230218105217406

发现网上说,gorm.DB直接就有这个方法。然后我试了一下发现没有,可能是因为GORM v2.0取消了这个方法。

image-20230218105237423

只能说都没有找到我满意的答案,最后甚至还是直接写SQL之后让GORM去Exec的?!

我寻思你用GORM不就是为了避免写SQL嘛...

最后觉得GORM这么强大不可能没有封装,于是就直接去GORM在GitHub上的Repo找了。

最后#

image-20230218105504313

发现v2.0中,取消了DropTableIfExists,转而封装了一个Migrator对象,是实现了根据Model去删表的操作,也就是跟之前DropTableIfExists的用法是一样的。

只不过现在调用需要这样写:

DB.Migrator().DropTable(&your_model{})

完结撒花!

posted @   ViKyanite  阅读(246)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示
主题色彩