データベースバックアップ
FeedbackPulseには組み込みのバックアップシステム(管理者 → バックアップ)が含まれており、管理パネルから直接データベースバックアップを作成、ダウンロード、管理できます。
🔧 仕組み
FeedbackPulseはホスティング環境を自動的に検出し、最適なバックアップ方法を選択します:
| 環境 | 方法 | 速度 |
|---|---|---|
| VPS/専用サーバー(exec利用可能) | mysqldump コマンド → gzip | 高速 |
| Windows(Laragon/XAMPP) | mysqldump → PHP gzencode | 高速 |
| 共有ホスティング(exec無効) | Pure PHP/PDO ダンプ → gzencode | 普通 |
exec() が無効または mysqldump が見つからない場合、システムは自動的にPHPベースの方法にフォールバックします。つまり、あらゆるホスティング環境でバックアップが機能します。シェルコマンドが制限されている共有ホスティングも含みます。
📋 機能
バックアップの作成
バックアップを作成をクリックして、新しいデータベースダンプを生成します。ファイルはタイムスタンプ付きのファイル名で storage/app/backups/ に保存されます。
バックアップのダウンロード
バックアップの横にあるダウンロードアイコンをクリックして、.sql.gz ファイルをダウンロードします。
バックアップの削除
削除アイコンをクリックしてバックアップファイルを削除します。バックアップファイルのみ削除され、実際のデータベースには影響しません。
バックアップ一覧
既存のバックアップをすべて表示します:
- ファイル名
- ファイルサイズ
- 作成日時
- ダウンロード/削除アクション
🔐 セキュリティ
- バックアップは
storage/app/backups/内に保存されます(公開アクセス不可) - データベースパスワードは使用後に削除される一時的な
.my.cnfファイルで管理されます - バックアップ機能にアクセスできるのはスーパー管理者のみです
💡 ベストプラクティス
- 定期的なバックアップを作成する — アップデート前、大きな変更前、または定期的に
- バックアップをダウンロードする — サーバー上だけでなくローカルにも保存する
- リストアをテストする — バックアップを定期的に復元できるか確認する
- 自動化する — 必要であれば自動日次バックアップ用のcronジョブを設定する
コマンドラインによる手動バックアップ
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