问题描述
使用Gorm容易出现一个问题:结构体和数据库明明对应,使用db.HasTable(xx{})却提示Error 1146: Table 'xxxxs' doesn't exist,亦或是使用自动迁移db.AutoMigrate(xx{})后在数据库中新建一个表名为目标表复数的新表。
解决方案
在Gorm中,表名默认是结构体名的复数形式,通过db.SingularTable(true)方法在全局中禁用表名复数,设置后表名默认为结构体首字母小写形式(相对于不设置时表名默认结构体名复数形式)。