package dao import ( "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" "videoplayer/proto" ) var DB *gorm.DB func Init() { dsn := proto.MYSQL_DSN db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect database") } err = db.AutoMigrate(&User{}) if err != nil { fmt.Println("user table:", err) } // 自动迁移,创建表,如果表已经存在,会自动更新表结构,不会删除表,只会创建不存在的表 err = db.AutoMigrate(&Video{}) if err != nil { fmt.Println("video table:", err) } // 自动迁移,创建表,如果表已经存在,会自动更新表结构,不会删除表,只会创建不存在的表 err = db.AutoMigrate(&Device{}) if err != nil { fmt.Println("device table:", err) } // 自动迁移,创建表,如果表已经存在,会自动更新表结构,不会删除表,只会创建不存在的表 err = db.AutoMigrate(&Logger{}) if err != nil { fmt.Println("logger table:", err) } // 自动迁移,创建表,如果表已经存在,会自动更新表结构,不会删除表,只会创建不存在的表 err = db.AutoMigrate(&CID{}) if err != nil { fmt.Println("cid table:", err) } // 自动迁移,创建表,如果表已经存在,会自动更新表结构,不会删除表,只会创建不存在的表 err = db.AutoMigrate(&CIDRunLog{}) if err != nil { fmt.Println("cidrunlog table:", err) } // 自动迁移,创建表,如果表已经存在,会自动更新表结构,不会删除表,只会创建不存在的表 DB = db } func Close() { sqlDB, err := DB.DB() if err != nil { panic("failed to connect database") } sqlDB.Close() }