# Evolução v1.0.7 — diagnóstico e backup pré-atualização

Inclui `scripts/preflight.php` (checagens CLI, retorno != 0 em falha) e `scripts/backup-database.php` (backup lógico SQL comprimido `.sql.gz`, SHA-256 e permissões restritas). Não altera a estrutura do banco desta versão.

## Procedimento recomendado no cPanel

1. Coloque o site em manutenção ou suspenda gravações para obter backup consistente; o exportador não captura alterações concorrentes atomicamente.
2. Garanta que `app/config.php` e `storage/` estejam fora de `public/`; a pasta `storage/backups/` não pode estar acessível pela web.
3. Execute pela interface Terminal do cPanel ou SSH, na raiz do projeto: `php scripts/preflight.php`.
4. Execute `php scripts/backup-database.php`; guarde o nome e SHA-256 e faça uma cópia externa protegida. Não armazene indefinidamente apenas no servidor.
5. Teste a restauração do `.sql.gz` em uma **base de homologação separada**, nunca diretamente na base de produção. Verifique as tabelas, as contagens e os vínculos entre usinas.
6. Somente depois, execute as migrações pendentes segundo o histórico da instalação. Implemente a publicação dos novos arquivos sob janela de manutenção.
7. Em falha, interrompa gravações, restaure a versão anterior do código e **restaure uma cópia verificada** do banco correspondente. O rollback de alterações de schema não é automático.

### Limitações

Não há atualizador transacional automático, auditoria extensa de permissões, validação MySQL real nesta entrega, restauração automática ou garantia de consistência do backup durante gravações concorrentes. Backup lógico é adequado para pequenas instalações; em bases maiores, avaliar `mysqldump`/backup consistente gerenciado pela hospedagem. O procedimento exige configuração e execução manual.
