DropColumn(如果存在于 GORM 中)



参考此帮助文档,如果存在语法db.DropTableIfExists(&User{}, "products")则有一个删除表,但对于db.Model(&User{}).DropColumn("description")DropColumnIfExists不存在。我应该使用什么来实现 DropColumn(如果列存在,否则不存在。

我应该使用什么来实现 DropColumn(如果列存在,否则不存在。

回答您的问题...

继续吧。您可以使用db.Model(&User{}).DropColumn("description").

只需优雅地处理错误即可。请记住,在 Golang 中,错误是值。

func main() {
db.AutoMigrate(&User{})
err := db.Model(&User{}).DropColumn("description").Error
if err != nil {
// Do whatever you want to do!
log.Print("ERROR: We expect the description column to be 
drop-able")
}
}

在引擎盖下,如果没有错误,gorm 将执行原始 postgresql 查询。否则,它将返回错误。

截至 2021 年对 Mohsin 的回答的更新:

我应该使用什么来实现 DropColumn(如果列存在,否则不存在。

当前版本(3.5.5)不再支持2017年的语法/API

来自 GORM 迁移参考

err = db.Migrator().DropColumn(&AuthUser{}, "name")
if err != nil {
// Do whatever you want to do!
log.Print("ERROR: We expect the description column to be drop-able")
}

相关内容

  • 没有找到相关文章

最新更新