Go 使用自动迁移删除未使用的列

Go 使用自动迁移删除未使用的列,go,migration,go-gorm,Go,Migration,Go Gorm,我已经开始与神奇图书馆GORM合作。自动迁移非常有效,但在文档中我读到了注释“它不会删除未使用的列以保护数据。” 我可以跳过这个规则吗?换句话说,我是否可以在gorm配置中添加/更改一些内容,以便有机会通过自动迁移删除未使用的列?不,我认为没有一个简单的选项可以做到这一点 以下是自动迁移源代码: 您需要枚举表中的所有列,检查它们是否存在,然后删除它们 您还需要枚举现有的关系和索引,并根据需要删除它们(如果它们不存在) 如果你最终写了这个,我想你可以编写你自己的AutoMigrate函数,它使用g

我已经开始与神奇图书馆GORM合作。自动迁移非常有效,但在文档中我读到了注释“它不会删除未使用的列以保护数据。”


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

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

以下是自动迁移源代码:

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

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

如果你最终写了这个,我想你可以编写你自己的
AutoMigrate
函数,它使用
gorm.Migrator
接口并运行AutoMigrate。您可以使用
db.Migrator()
在现有代码中获取Migrator接口,并将其传递给函数。也许有人在某处写过这样的函数