数据库+redis+meilisearch+s3+EQURL 配置全部走环境变量,不在代码层硬编码

This commit is contained in:
eafonyang
2026-07-13 14:16:05 +08:00
parent c1547f9a8f
commit 4f1da3675b
9 changed files with 80 additions and 215 deletions
+4 -37
View File
@@ -2,7 +2,6 @@ package config
import (
"fmt"
"os"
"strconv"
)
@@ -14,50 +13,21 @@ type DatabaseConfig struct {
Password string
}
func loadDatabase(env string) (DatabaseConfig, error) {
switch env {
case "production":
if os.Getenv("DATABASE_HOST") != "" {
return databaseFromEnv()
}
return DatabaseConfig{
Host: "database-1.chmuueamo72p.eu-central-1.rds.amazonaws.com",
Port: 3306,
Name: "audio",
User: "root",
Password: os.Getenv("DATABASE_PASSWORD"),
}, nil
default:
port, err := strconv.Atoi(getEnv("DATABASE_PORT", "3306"))
if err != nil {
return DatabaseConfig{}, fmt.Errorf("invalid DATABASE_PORT: %w", err)
}
return DatabaseConfig{
Host: getEnv("DATABASE_HOST", "192.168.9.127"),
Port: port,
Name: getEnv("DATABASE_NAME", "audio"),
User: getEnv("DATABASE_USER", "root"),
Password: getEnv("DATABASE_PASSWORD", "root123"),
}, nil
}
}
func databaseFromEnv() (DatabaseConfig, error) {
func loadDatabase() (DatabaseConfig, error) {
port, err := strconv.Atoi(getEnv("DATABASE_PORT", "3306"))
if err != nil {
return DatabaseConfig{}, fmt.Errorf("invalid DATABASE_PORT: %w", err)
}
return DatabaseConfig{
Host: os.Getenv("DATABASE_HOST"),
Host: getEnv("DATABASE_HOST", ""),
Port: port,
Name: getEnv("DATABASE_NAME", "audio"),
User: getEnv("DATABASE_USER", "root"),
Password: os.Getenv("DATABASE_PASSWORD"),
Password: getEnv("DATABASE_PASSWORD", ""),
}, nil
}
func (d DatabaseConfig) validate(env string) error {
func (d DatabaseConfig) validate() error {
if d.Host == "" {
return fmt.Errorf("database host is required")
}
@@ -67,8 +37,5 @@ func (d DatabaseConfig) validate(env string) error {
if d.User == "" {
return fmt.Errorf("database user is required")
}
if env == "production" && d.Password == "" {
return fmt.Errorf("DATABASE_PASSWORD is required in production")
}
return nil
}