Pular para conteúdo

🔄 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).

  1. Liste os arquivos ordenadamente.
  2. 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

  1. Abra o arquivo docker-compose.yml.
  2. Atualize a tag da imagem para a versão desejada.
  3. 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