一、案例表结构
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键编码',
`name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '姓名',
`desc` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
二、gorm 结构体
package model
type User struct {
Id int64 `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT;comment:主键编码" json:"id"`
Name string `gorm:"column:name;type:varchar(100);comment:姓名" json:"name"`
Desc string `gorm:"column:desc;type:varchar(255);comment:描述" json:"desc"`
}
func (m *User) TableName() string {
return "user"
}
三、Gorm 指定字符集迁移表
func autoMigrate(db *gorm.DB) error {
err := db.Set("gorm:table_options", "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci").
AutoMigrate(&model.User{})
if err != nil {
return err
}
return nil
}
参考链接: