From 753098e7fe3048bc65e088e4d46d7aec37bf3b26 Mon Sep 17 00:00:00 2001 From: Admin Date: Thu, 16 Jul 2026 16:11:55 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=89=E8=A3=85=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E9=85=8D=E7=BD=AE=E5=A4=B1=E8=B4=A5=20-=20?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E7=9B=AE=E5=BD=95=E5=AD=98=E5=9C=A8=E5=B9=B6?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E5=88=9B=E5=BB=BA=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/config/config.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/internal/config/config.go b/internal/config/config.go index 49bc1b8..debdc56 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -97,12 +97,30 @@ func Load(configPath string) error { } func Save(cfg *Config) error { + // 确保 data 目录存在 + if err := os.MkdirAll("./data", 0755); err != nil { + return fmt.Errorf("创建数据目录失败: %w", err) + } + viper.Set("server", cfg.Server) viper.Set("database", cfg.Database) viper.Set("redis", cfg.Redis) viper.Set("jwt", cfg.JWT) viper.Set("captcha", cfg.Captcha) + // 使用 SafeWriteConfig,如果文件不存在会自动创建 + configPath := "./data/config.yaml" + viper.SetConfigFile(configPath) + + // 检查文件是否存在,不存在则创建 + if _, err := os.Stat(configPath); os.IsNotExist(err) { + if err := viper.SafeWriteConfig(); err != nil { + return fmt.Errorf("创建配置文件失败: %w", err) + } + return nil + } + + // 文件已存在,直接写入 return viper.WriteConfig() }