Files
jh-zz/model/common.go
2025-08-09 14:42:19 +08:00

56 lines
1.0 KiB
Go

package model
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"os"
"strconv"
)
var DB *gorm.DB
func Init() {
var err error
host := os.Getenv("MYSQL_HOST")
if host == "" {
host = "localhost"
}
portStr := os.Getenv("MYSQL_PORT")
var port int
if portStr == "" {
port = 3306
} else {
port, err = strconv.Atoi(portStr)
if err != nil {
panic(fmt.Sprintf("Invalid MYSQL_PORT environment variable: %s", portStr))
}
}
username := os.Getenv("MYSQL_USERNAME")
if username == "" {
panic("MYSQL_USERNAME environment variable is not set")
}
password := os.Getenv("MYSQL_PASSWORD")
if password == "" {
panic("MYSQL_PASSWORD environment variable is not set")
}
database := os.Getenv("MYSQL_DATABASE")
if database == "" {
panic("MYSQL_DATABASE environment variable is not set")
}
dsn := fmt.Sprintf(
"%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
username, password, host, port, database,
)
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic(err)
}
}