gorm连接mysql使用InnoDB引擎创建数据表


gorm连接mysql时默认创建的表使用的引擎是MyISAM。使用事务是可能会失效。需要在初始化配置的时候设置表引擎。参考代码如下:

var DB *gorm.DB
var Dialect = "mysql"
var Dsn = "root:root@tcp(127.0.0.1:3306)/db_test?charset=utf8mb4&parseTime=True&loc=Local"
DB, err = gorm.Open(Dialect, config.Database.Dsn)
if err != nil {
    panic(err)
}

if Dialect == "mysql" {
    DB.InstantSet("gorm:table_options", "ENGINE=InnoDB")
}

DB.AutoMigrate(&User{})

Archives