如何禁用Golang GORM连接MySQL时的自动建表/列功能?
禁用GORM自动创建表/列的解决方案
GORM的自动DDL(创建表、添加缺失列)功能不是默认开启的,它是通过代码中显式调用相关方法触发的,具体解决方法如下:
移除
AutoMigrate方法调用
这是最常见的触发自动创建的原因,如果你代码里有类似下面的代码,直接删除即可:// 删掉这行,停止自动创建/更新表结构 db.AutoMigrate(&YourModel{}, &AnotherModel{})AutoMigrate的作用是自动创建表、添加缺失的列和索引,不会删除现有列或索引,只要不调用它,就不会触发这类自动操作。避免调用其他主动建表方法
GORM还提供了CreateTable、Migrator().CreateTable这类主动创建表的方法,如果你不需要自动建表,也要确保代码中没有调用这些方法。排查第三方依赖的初始化逻辑
如果你使用了Web框架或第三方GORM扩展,有些库会在初始化时自动调用AutoMigrate,需要检查项目的初始化代码,找到对应的触发逻辑并关闭。
内容的提问来源于stack exchange,提问作者Mathan
相关产品推荐
相关产品推荐

