Pular para o conteúdo principal

Atualização

Processo para atualizar o ION Guard para uma versão mais recente com segurança e possibilidade de rollback.

Comando​

cd /home/iongrade/ionguard
./scripts/upgradeToNewestVersion.sh -v 0.2.0

Parâmetros​

FlagObrigatórioDescrição
-v VERSIONSimVersão de destino (ex: 0.2.0)
-bNãoPular rebuild das imagens Docker
-qNãoAtualização rápida — reload gracioso do PHP-FPM ao invés de restart completo
-uNãoPular avisos de upgrade

Fluxo de atualização​

O script executa as seguintes etapas em ordem:

1. Download do pacote​

On-premises: Baixa o pacote criptografado do servidor de distribuição e descriptografa com a passphrase da facility.

SaaS: Atualiza via git fetch e git checkout da tag de versão.

2. Parar workers​

Workers de fila (Horizon), scheduler e listeners MQTT são parados para evitar processamento durante a migração.

3. Backup do código atual​

O diretório app/ é renomeado para app_old/ de forma atômica. Isso permite rollback instantâneo em caso de falha.

4. Extração da nova versão​

O novo código e os arquivos de deploy são extraídos nos diretórios corretos.

5. Migração do banco de dados​

php artisan migrate --force
Rollback automático

Se a migração falhar, o script automaticamente restaura app_old/ para app/ e reinicia os serviços com a versão anterior. A atualização é abortada com mensagem de erro.

6. Limpar cache e otimizar​

php artisan optimize:clear
php artisan optimize

7. Restart dos serviços​

Todos os containers são reiniciados com o novo código.

8. Permissões​

Permissões de arquivo são reajustadas via setPermissions.sh.

9. Limpeza​

O diretório app_old/ é removido após confirmar que tudo está funcionando.

Atualização rápida​

A flag -q faz um reload gracioso do PHP-FPM ao invés de reiniciar todos os containers. Isso minimiza o downtime para atualizações menores que não alteram a infraestrutura:

./scripts/upgradeToNewestVersion.sh -v 0.2.1 -q

Verificação pós-atualização​

Após a atualização, verifique:

# Verificar versão
./scripts/getVersion.sh

# Health check
./scripts/healthcheck.sh

# Status dos containers
./scripts/comp.sh ps

# Logs de erro
./scripts/comp.sh logs -f ionguard_php --tail 50

Rollback manual​

Se necessário fazer rollback manual (caso o automático não tenha ocorrido):

# Se app_old/ ainda existe
mv app app_bad && mv app_old app

# Reverter migrations (se a migração foi aplicada)
./scripts/comp.sh exec -T ionguard_php php artisan migrate:rollback

# Restart
./scripts/restartAllServices.sh
Atenção

Antes de atualizar, sempre verifique as notas de release da versão de destino para instruções específicas ou breaking changes.