数据库备份
FeedbackPulse 内置了备份系统(管理员 → 备份),可让您直接在管理面板中创建、下载和管理数据库备份。
🔧 工作原理
FeedbackPulse 会智能检测您的托管环境并选择最佳备份方式:
| 环境 | 方式 | 速度 |
|---|---|---|
| VPS/独立服务器(exec 可用) | mysqldump 命令 → gzip | 快速 |
| Windows(Laragon/XAMPP) | mysqldump → PHP gzencode | 快速 |
| 共享主机(exec 已禁用) | 纯 PHP/PDO 导出 → gzencode | 中等 |
如果 exec() 被禁用或找不到 mysqldump,系统会自动回退到基于 PHP 的方式。这意味着所有托管类型均支持备份,包括限制 Shell 命令的共享主机。
📋 功能
创建备份
点击创建备份以生成新的数据库导出文件。文件将以带时间戳的文件名保存至 storage/app/backups/。
下载备份
点击任意备份旁的下载图标,即可下载 .sql.gz 文件。
删除备份
点击删除图标可移除备份文件。此操作仅删除备份文件——您的实时数据库不受影响。
备份列表
显示所有现有备份,包括:
- 文件名
- 文件大小
- 创建日期
- 下载/删除操作
🔐 安全性
- 备份存储在
storage/app/backups/(不可公 开访问) - 数据库密码通过临时
.my.cnf文件处理,使用后自动删除 - 只有超级管理员才能访问备份功能
💡 最佳实践
- 定期创建备份 — 在更新、重大变更之前或定期执行
- 下载备份 — 不要只将备份保存在服务器上
- 测试恢复 — 定期验证备份能够成功恢复
- 自动化 — 如有需要,可设置定时任务实现每日自动备份
通过命令行手动备份
cd /var/www/feedbackpulse-saas
mysqldump -u feedbackpulse -p feedbackpulse | gzip > storage/app/backups/manual_$(date +%Y%m%d).sql.gz
恢复备份
gunzip < storage/app/backups/backup_file.sql.gz | mysql -u feedbackpulse -p feedbackpulse