package db import ( "feedsystem_video_go/internal/account" "feedsystem_video_go/internal/config" "feedsystem_video_go/internal/video" "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" ) func NewDB(dbcfg config.DatabaseConfig) (*gorm.DB, error) { dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbcfg.User, dbcfg.Password, dbcfg.Host, dbcfg.Port, dbcfg.DBName) db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { return nil, err } return db, nil } func AutoMigrate(db *gorm.DB) error { return db.AutoMigrate(&account.Account{}, &video.Video{}, &video.Like{}, &video.Comment{}) } func CloseDB(db *gorm.DB) error { sqlDB, err := db.DB() if err != nil { return err } return sqlDB.Close() }