|
@@ -14,7 +14,7 @@ Draft
|
|
|
- [ ] 使用PostgreSQL的 `pg_dump` 工具进行备份
|
|
- [ ] 使用PostgreSQL的 `pg_dump` 工具进行备份
|
|
|
- [ ] 备份文件格式为自定义格式(-Fc)以便快速恢复
|
|
- [ ] 备份文件格式为自定义格式(-Fc)以便快速恢复
|
|
|
- [ ] 实现备份清理策略,自动删除7天前的旧备份
|
|
- [ ] 实现备份清理策略,自动删除7天前的旧备份
|
|
|
-- [ ] 集成到Node.js应用中使用 `node-cron` 调度
|
|
|
|
|
|
|
+- [ ] 集成到Node.js应用中使用 `node-cron` 调度,在应用启动时自动初始化备份任务
|
|
|
- [ ] 提供手动触发备份的脚本或命令
|
|
- [ ] 提供手动触发备份的脚本或命令
|
|
|
- [ ] 备份过程记录详细的日志信息
|
|
- [ ] 备份过程记录详细的日志信息
|
|
|
- [ ] 实现备份状态监控和错误通知,集成到现有监控系统
|
|
- [ ] 实现备份状态监控和错误通知,集成到现有监控系统
|
|
@@ -29,7 +29,7 @@ Draft
|
|
|
- [ ] 创建备份脚本 backup.ts (AC: 1,2,3,4,6,7)
|
|
- [ ] 创建备份脚本 backup.ts (AC: 1,2,3,4,6,7)
|
|
|
- [ ] 实现pg_dump备份功能
|
|
- [ ] 实现pg_dump备份功能
|
|
|
- [ ] 添加自定义格式支持
|
|
- [ ] 添加自定义格式支持
|
|
|
- - [ ] 集成node-cron调度
|
|
|
|
|
|
|
+ - [ ] 集成node-cron调度,在应用启动时自动初始化
|
|
|
- [ ] 实现日志记录
|
|
- [ ] 实现日志记录
|
|
|
- [ ] 创建恢复脚本 restore.ts (AC: 4,7)
|
|
- [ ] 创建恢复脚本 restore.ts (AC: 4,7)
|
|
|
- [ ] 实现pg_restore功能
|
|
- [ ] 实现pg_restore功能
|
|
@@ -49,9 +49,10 @@ Draft
|
|
|
## Dev Notes
|
|
## Dev Notes
|
|
|
### 技术栈 [Source: architecture/infrastructure-deployment.md#数据库备份策略]
|
|
### 技术栈 [Source: architecture/infrastructure-deployment.md#数据库备份策略]
|
|
|
- **调度工具**: node-cron
|
|
- **调度工具**: node-cron
|
|
|
-- **备份工具**: PostgreSQL pg_dump/pg_restore
|
|
|
|
|
|
|
+- **备份工具**: pg-dump-restore npm包(封装pg_dump/pg_restore)
|
|
|
- **存储位置**: ./backups/ 目录
|
|
- **存储位置**: ./backups/ 目录
|
|
|
- **日志记录**: 使用现有debug日志系统(src/server/utils/logger.ts)
|
|
- **日志记录**: 使用现有debug日志系统(src/server/utils/logger.ts)
|
|
|
|
|
+- **依赖**: 需要安装 pg-dump-restore 包
|
|
|
|
|
|
|
|
### 备份策略 [Source: architecture/infrastructure-deployment.md#数据库备份策略]
|
|
### 备份策略 [Source: architecture/infrastructure-deployment.md#数据库备份策略]
|
|
|
- **频率**: 每日凌晨2点执行完整备份
|
|
- **频率**: 每日凌晨2点执行完整备份
|
|
@@ -75,13 +76,18 @@ Draft
|
|
|
|
|
|
|
|
### 文件结构
|
|
### 文件结构
|
|
|
```
|
|
```
|
|
|
-scripts/
|
|
|
|
|
- backup.ts # 主备份脚本
|
|
|
|
|
- restore.ts # 恢复脚本
|
|
|
|
|
-tests/
|
|
|
|
|
- backup.test.ts # 备份功能测试
|
|
|
|
|
-backups/ # 备份文件存储目录
|
|
|
|
|
- daily/ # 每日备份
|
|
|
|
|
|
|
+项目根目录/
|
|
|
|
|
+ src/server/
|
|
|
|
|
+ utils/
|
|
|
|
|
+ backup.ts # 主备份脚本
|
|
|
|
|
+ restore.ts # 恢复脚本
|
|
|
|
|
+ src/server/utils/
|
|
|
|
|
+ __tests__/
|
|
|
|
|
+ backup.test.ts # 备份单元测试
|
|
|
|
|
+ __integration_tests__/
|
|
|
|
|
+ backup.integration.test.ts # 备份集成测试
|
|
|
|
|
+ backups/ # 备份文件存储目录
|
|
|
|
|
+ daily/ # 每日备份
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
### 环境变量配置
|
|
### 环境变量配置
|
|
@@ -119,7 +125,8 @@ ALERT_EMAIL=admin@example.com
|
|
|
## Testing
|
|
## Testing
|
|
|
### 测试标准 [Source: architecture/testing-strategy.md]
|
|
### 测试标准 [Source: architecture/testing-strategy.md]
|
|
|
- 使用Vitest进行单元和集成测试
|
|
- 使用Vitest进行单元和集成测试
|
|
|
-- 测试文件位于tests/目录
|
|
|
|
|
|
|
+- 单元测试文件位于 `src/**/__tests__/` 目录
|
|
|
|
|
+- 集成测试文件位于 `src/**/__integration_tests__/` 目录
|
|
|
- 遵循现有测试模式和结构
|
|
- 遵循现有测试模式和结构
|
|
|
|
|
|
|
|
### 测试场景
|
|
### 测试场景
|