| 12345678910111213141516171819202122232425262728 |
- package infra
- import (
- "fmt"
- "os"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- )
- // 初始化数据库连接(从环境变量读取配置)
- // 需要的环境变量:
- // DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME
- func NewDB() (*gorm.DB, error) {
- host := os.Getenv("DB_HOST")
- port := os.Getenv("DB_PORT")
- user := os.Getenv("DB_USER")
- password := os.Getenv("DB_PASSWORD")
- name := os.Getenv("DB_NAME")
- // 最小校验,避免使用硬编码默认值
- if host == "" || port == "" || user == "" || name == "" {
- return nil, fmt.Errorf("database env not set: require DB_HOST, DB_PORT, DB_USER, DB_NAME")
- }
- dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?parseTime=true&charset=utf8mb4&loc=Local", user, password, host, port, name)
- return gorm.Open(mysql.Open(dsn), &gorm.Config{})
- }
|