fix: 安装页面保存配置失败 - 确保目录存在并正确创建配置文件
This commit is contained in:
@@ -97,12 +97,30 @@ func Load(configPath string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Save(cfg *Config) 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("server", cfg.Server)
|
||||||
viper.Set("database", cfg.Database)
|
viper.Set("database", cfg.Database)
|
||||||
viper.Set("redis", cfg.Redis)
|
viper.Set("redis", cfg.Redis)
|
||||||
viper.Set("jwt", cfg.JWT)
|
viper.Set("jwt", cfg.JWT)
|
||||||
viper.Set("captcha", cfg.Captcha)
|
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()
|
return viper.WriteConfig()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user