解决goravel/gorm自动迁移AutoMigrate 时会将关联关系也一并迁移问题
前言
最近在做一个golang的系统,我采用的是goravel框架,参考goravel的耗子大佬源码(貌似已经被删除了,是哪个commit我不记得了,只记得大佬在goravel群里有发过此迁移方案实现的连接)我参考实现了自动迁移功能,但是最近突然发现这个迁移有问题,明明我每个表写的都有注释,并且注释和表结构体是一一对饮循环调用AutoMigrate进行迁移的,但是就是出现很多表的注释和其他表长一模一样,很懵逼找了很多方案,也搜了很多信息都没搜到解决方案,最后无奈扒了一下gorm源码才得到解决
我的迁移源码
我的model文件大概是这样写的:
type ModelClickAuto struct {Model interface{}Comment stringENGINE string //数据库引擎
}
func GetModelsStruct() []ModelAuto {clickmodels := []ModelAuto{{&xxx{}, "设备表1"},{&xxxx{}, "设备表2"},{&xxxxx{}, "设备表3"},} // endreturn clickmodels
}
我的 /app/providers/database_service_provider.go文件迁移大概是这样写的:
modelss := models.GetModelsStruct() //这里获取到的是一个二维切片
tx := facades.Orm().Query().(*gorm.QueryImpl)