gpt4 book ai didi

go - 使用自动迁移删除未使用的列

转载 作者:行者123 更新时间:2023-12-03 10:07:51 25 4
gpt4 key购买 nike

我已经开始为 Go 使用出色的库 GORM。自动迁移完美运行,但在文档中我阅读了注释 “它不会删除未使用的列来保护您的数据。”
我可以跳过这条规则吗?换句话说,我可以在 gorm 配置中添加/更改某些内容,以便有机会使用自动迁移删除未使用的列吗?

最佳答案

不,我不认为有一个简单的选择来做到这一点。
这是 AutoMigrate 源:https://github.com/go-gorm/gorm/blob/59730417aabd5b510d66d9d923d265a6fc0195a0/migrator/migrator.go#L83-L153
您需要枚举表上的所有列,检查它们是否存在,然后删除它们。
您还需要枚举现有的关系和索引,并在必要时删除它们(如果它们不存在)。
如果你最终写了那个,我想你可以自己写AutoMigrate接受 gorm.Migrator 的函数界面并运行自动迁移。您可以使用 db.Migrator() 在现有代码中获取 Migrator 接口(interface)并将其传递给您的函数。也许有人在某处写过这样的函数!

关于go - 使用自动迁移删除未使用的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65646890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com