Backups do Banco de Dados
O FeedbackPulse inclui um sistema de backup integrado (Admin → Backups) que permite criar, baixar e gerenciar backups do banco de dados diretamente pelo painel de administração.
🔧 Como Funciona
O FeedbackPulse detecta inteligentemente o ambiente de hospedagem e escolhe o melhor método de backup:
| Ambiente | Método | Velocidade |
|---|---|---|
| VPS/Dedicado (exec disponível) | Comando mysqldump → gzip | Rápido |
| Windows (Laragon/XAMPP) | mysqldump → PHP gzencode | Rápido |
| Hospedagem compartilhada (exec desabilitado) | Dump PHP/PDO puro → gzencode | Moderado |
O sistema recorre automaticamente ao método baseado em PHP se exec() estiver desabilitado ou se mysqldump não for encontrado. Isso significa que os backups funcionam em todos os tipos de hospedagem, incluindo hospedagem compartilhada onde comandos shell são restritos.
📋 Funcionalidades
Criar um Backup
Clique em Criar Backup para gerar um novo dump do banco de dados. O arquivo é salvo em storage/app/backups/ com um nome de arquivo com timestamp.
Baixar um Backup
Clique no ícone de download ao lado de qualquer backup para baixar o arquivo .sql.gz.
Excluir um Backup
Clique no ícone de exclusão para remover um arquivo de backup. Isso exclui apenas o arquivo de backup — seu banco de dados em produção não é afetado.
Lista de Backups
Exibe todos os backups existentes com:
- Nome do arquivo
- Tamanho do arquivo
- Data de criação
- Ações de download/exclusão
🔐 Segurança
- Os backups são armazenados em
storage/app/backups/(não acessível publicamente) - As senhas do banco de dados são tratadas por meio de arquivos
.my.cnftemporários que são excluídos após o uso - Apenas superadmins podem acessar o recurso de backup
💡 Boas Práticas
- Crie backups regularmente — antes de atualizações, grandes alterações ou periodicamente
- Baixe os backups — não os mantenha apenas no servidor
- Teste a restauração — verifique periodicamente se os backups podem ser restaurados
- Automatize — configure um cron job para backups diários automáticos, se necessário
Backup Manual via Linha de Comando
cd /var/www/feedbackpulse-saas
mysqldump -u feedbackpulse -p feedbackpulse | gzip > storage/app/backups/manual_$(date +%Y%m%d).sql.gz
Restaurando um Backup
gunzip < storage/app/backups/backup_file.sql.gz | mysql -u feedbackpulse -p feedbackpulse