# 环境配置切换使用说明 本项目支持根据系统环境变量自动切换不同的配置文件,以适应开发、测试和生产环境的不同需求。 ## 配置文件结构 ``` configs/ ├── config.yaml # 默认配置文件 ├── config.dev.yaml # 开发环境配置 ├── config.test.yaml # 测试环境配置 └── config.prod.yaml # 生产环境配置 ``` ## 环境变量设置 系统会按以下优先级检查环境变量: 1. `GO_ENV` 2. `APP_ENV` 3. `ENVIRONMENT` 如果没有设置任何环境变量,默认使用开发环境(development)。 ### 支持的环境值 - `development` 或 `dev` → 使用 `config.dev.yaml` - `test` 或 `testing` → 使用 `config.test.yaml` - `production` 或 `prod` → 使用 `config.prod.yaml` - 其他值 → 使用 `config.yaml` ## 使用方法 ### 方法一:直接设置环境变量 **Windows (PowerShell):** ```powershell # 开发环境 $env:GO_ENV = "development" go run cmd/main.go # 测试环境 $env:GO_ENV = "test" go run cmd/main.go # 生产环境 $env:GO_ENV = "production" go run cmd/main.go ``` **Linux/Mac:** ```bash # 开发环境 export GO_ENV=development go run cmd/main.go # 测试环境 export GO_ENV=test go run cmd/main.go # 生产环境 export GO_ENV=production go run cmd/main.go ``` ### 方法二:使用提供的启动脚本 **Windows:** ```cmd start.bat ``` **Linux/Mac:** ```bash chmod +x start.sh ./start.sh ``` 启动脚本会提供交互式菜单,让你选择要启动的环境。 ### 方法三:一次性设置环境变量 **Windows:** ```powershell # 开发环境 $env:GO_ENV="development"; go run cmd/main.go # 测试环境 $env:GO_ENV="test"; go run cmd/main.go # 生产环境 $env:GO_ENV="production"; go run cmd/main.go ``` **Linux/Mac:** ```bash # 开发环境 GO_ENV=development go run cmd/main.go # 测试环境 GO_ENV=test go run cmd/main.go # 生产环境 GO_ENV=production go run cmd/main.go ``` ## 各环境配置差异 ### 开发环境 (config.dev.yaml) - 数据库:`ai_dianshang_dev` - 服务器模式:`debug` - 日志级别:`debug` - Redis DB:`0` ### 测试环境 (config.test.yaml) - 数据库:`ai_dianshang_test` - 服务器模式:`test` - 日志级别:`info` - Redis DB:`1` ### 生产环境 (config.prod.yaml) - 数据库:`ai_dianshang` - 服务器模式:`release` - 日志级别:`info` - Redis DB:`0` - 日志输出到文件:`logs/app.prod.log` ## 配置验证 启动时,系统会自动显示当前加载的配置信息: ``` 2025/10/15 16:19:39 成功加载配置文件: D:\project\Work\dianshang\server\configs\config.dev.yaml (环境: development) 2025/10/15 16:19:39 === 配置信息 === 2025/10/15 16:19:39 环境: development 2025/10/15 16:19:39 服务器端口: 8080 2025/10/15 16:19:39 服务器模式: debug 2025/10/15 16:19:39 数据库: root@127.0.0.1:3306/ai_dianshang_dev 2025/10/15 16:19:39 Redis: localhost:6379 (DB:0) 2025/10/15 16:19:39 日志级别: debug 2025/10/15 16:19:39 微信AppID: wx430b70d696b4dbd7 2025/10/15 16:19:39 =============== ``` ## 测试配置切换 可以运行测试脚本验证配置切换功能: ```bash go run test_config_env.go ``` 该脚本会测试所有环境的配置加载情况。 ## 注意事项 1. 确保对应环境的数据库已创建 2. 生产环境建议使用环境变量管理敏感信息 3. 修改配置文件后需要重启应用 4. 日志文件路径需要确保目录存在且有写入权限