Files
SingBox-Gopanel/internal/database/db.go
CN-JS-HuiBai b3435e5ef8
Some checks failed
build / build (api, amd64, linux) (push) Has been cancelled
build / build (api, arm64, linux) (push) Has been cancelled
build / build (api.exe, amd64, windows) (push) Has been cancelled
基本功能已初步完善
2026-04-17 20:41:47 +08:00

45 lines
942 B
Go

package database
import (
"fmt"
"log"
"xboard-go/internal/config"
"xboard-go/internal/model"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
var DB *gorm.DB
func InitDB() {
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
config.AppConfig.DBUser,
config.AppConfig.DBPass,
config.AppConfig.DBHost,
config.AppConfig.DBPort,
config.AppConfig.DBName,
)
var err error
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
DisableForeignKeyConstraintWhenMigrating: true,
})
if err != nil {
log.Fatalf("Failed to connect to database: %v", err)
}
if err := DB.AutoMigrate(
&model.RealNameAuth{},
&model.UserOnlineDevice{},
&model.UserIPv6Subscription{},
); err != nil {
log.Fatalf("Failed to migrate database tables: %v", err)
}
log.Println("Database connection established")
}