登录
首页 >  Golang >  Go问答

自动清除未使用的列

来源:stackoverflow

时间:2024-03-09 10:15:25 112浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《自动清除未使用的列》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我已经开始使用很棒的 Go 库 GORM。自动迁移工作得很好,但在文档中我读到了注释“它不会删除未使用的列来保护您的数据。”

我可以跳过这条规则吗?换句话说,我可以在 gorm 配置中添加/更改某些内容,以便有机会通过自动迁移删除未使用的列吗?


解决方案


不,我认为没有一个简单的选择可以做到这一点。

这是自动迁移源:https://github.com/go-gorm/gorm/blob/59730417aabd5b510d66d9d923d265a6fc0195a0/migrator/migrator.go#L83-L153

您需要枚举表中的所有列,检查它们是否存在,然后删除它们。

您还需要枚举现有的关系和索引,并根据需要将其删除(如果它们不存在)。

如果您最终确实写了该内容,我认为您可以编写自己的 AutoMigrate 函数,该函数采用 gorm.Migrator 接口并运行自动迁移。您可以使用 db.Migrator() 在现有代码中获取 Migrator 接口并将其传递给您的函数。也许有人在某个地方写过这样的函数!

好了,本文到此结束,带大家了解了《自动清除未使用的列》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>