Initial commit
This commit is contained in:
159
server/README_CONFIG.md
Normal file
159
server/README_CONFIG.md
Normal file
@@ -0,0 +1,159 @@
|
||||
# 环境配置切换使用说明
|
||||
|
||||
本项目支持根据系统环境变量自动切换不同的配置文件,以适应开发、测试和生产环境的不同需求。
|
||||
|
||||
## 配置文件结构
|
||||
|
||||
```
|
||||
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. 日志文件路径需要确保目录存在且有写入权限
|
||||
Reference in New Issue
Block a user