如何用GORM v2.0+实现DropTableIfExists
前因#
最近在写测试的时候每次都要自己手动清空之前测试的表,想起之前写SQL语句的时候都会有DropTableIfExists,于是就去百度,看看GORM有没有已经封装好了。
过程#
发现网上说,gorm.DB直接就有这个方法。然后我试了一下发现没有,可能是因为GORM v2.0取消了这个方法。
只能说都没有找到我满意的答案,最后甚至还是直接写SQL之后让GORM去Exec的?!
我寻思你用GORM不就是为了避免写SQL嘛...
最后觉得GORM这么强大不可能没有封装,于是就直接去GORM在GitHub上的Repo找了。
最后#
发现v2.0中,取消了DropTableIfExists,转而封装了一个Migrator对象,是实现了根据Model去删表的操作,也就是跟之前DropTableIfExists的用法是一样的。
只不过现在调用需要这样写:
DB.Migrator().DropTable(&your_model{})
完结撒花!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人