🔄 Atualização do e-SUS AF
Este guia descreve os procedimentos necessários para realizar a atualização segura do e-SUS AF, abrangendo tanto a camada de banco de dados quanto a atualização das imagens de container.
1. Backup de Segurança 🛡️
Antes de iniciar qualquer procedimento, é obrigatório realizar um backup completo do banco de dados.
Utilize o pg_dump para gerar um snapshot do estado atual:
pg_dump -h <HOST_DO_BANCO> -U <USUARIO> -d <NOME_DO_BANCO> > backup_pre_atualizacao_$(date +%Y%m%d).sql
2. Atualização do Banco de Dados 🗄️
A atualização do banco de dados é dividida em duas etapas: Estrutura (DDL) e Dados (DML).
2.1 Identificando Alterações
Utilize o git diff para identificar quais scripts foram adicionados ou modificados entre a sua versão instalada e a nova versão:
# Exemplo entre v1.2.0 e v1.2.5
git diff v1.2.0 v1.2.5 -- database/postgres
git diff v1.2.0 v1.2.5 -- database/data
2.2 Execução de Scripts DDL (Estrutura)
Os arquivos localizados em database/postgres alteram a estrutura das tabelas. Eles devem ser executados em ordem cronológica (pelo timestamp no nome do arquivo).
- Liste os arquivos ordenadamente.
- Execute cada um via
psql:
# Exemplo de execução individual
psql -h <HOST> -U <USUARIO> -d <BANCO> -f database/postgres/20250815104637-configuracao_si_bnafar.sql
2.3 Execução de Scripts DML (Dados)
Após atualizar a estrutura, execute os scripts de carga ou correção de dados localizados em database/data, seguindo a mesma regra de ordem por timestamp.
# Exemplo de execução
psql -h <HOST> -U <USUARIO> -d <BANCO> -f database/data/20250820113000-carga-inicial.sql
3. Atualização das Imagens 🚀
Com o banco de dados atualizado, proceda com a atualização das imagens da aplicação em sua registry.
Exemplo de Registry
Utilize as imagens oficiais de nossa registry:
gitlab.inova-af.dev.br:5050/inova-af/esus-af/e-susaf-api:v1.2.5
🐋 Docker Compose
- Abra o arquivo
docker-compose.yml. - Atualize a tag da imagem para a versão desejada.
- Aplique as mudanças:
docker-compose up -d
☸️ Kubernetes
Atualize o deployment diretamente via linha de comando ou alterando seu manifesto YAML:
# Atualizando a API
kubectl set image deployment/api api=gitlab.inova-af.dev.br:5050/inova-af/esus-af/e-susaf-api:v1.2.5
# Monitorando o progresso
kubectl rollout status deployment/api
4. Verificação Pós-Atualização ✅
Após a atualização, verifique os logs da aplicação para garantir que não existam erros de conexão ou de esquema:
- Docker:
docker logs -f api - Kubernetes:
kubectl logs -f deployment/api