メインコンテンツまでスキップ

データベースバックアップ

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 ファイルで管理されます
  • バックアップ機能にアクセスできるのはスーパー管理者のみです

💡 ベストプラクティス

  1. 定期的なバックアップを作成する — アップデート前、大きな変更前、または定期的に
  2. バックアップをダウンロードする — サーバー上だけでなくローカルにも保存する
  3. リストアをテストする — バックアップを定期的に復元できるか確認する
  4. 自動化する — 必要であれば自動日次バックアップ用の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

⏭️ 次のステップ