sistema-de-chamados/docs/alteracoes-producao-2025-12-18.md
rever-tecnologia c030a3ac09
All checks were successful
CI/CD Web + Desktop / Detect changes (push) Successful in 6s
CI/CD Web + Desktop / Deploy (VPS Linux) (push) Successful in 3m41s
CI/CD Web + Desktop / Deploy Convex functions (push) Has been skipped
Quality Checks / Lint, Test and Build (push) Successful in 4m0s
fix: tratar tokens de maquinas e alinhar stack/docs
2025-12-18 18:20:35 -03:00

2.6 KiB

Alteracoes de producao - 2025-12-18

Este documento registra as mudancas aplicadas na VPS para estabilizar o ambiente e padronizar o uso do PostgreSQL 18.

Resumo

  • Migracao do banco principal do sistema para o servico postgres18.
  • Desativacao do servico postgres (pg16) no Swarm.
  • Convex backend fixado na tag ghcr.io/get-convex/convex-backend:6690a911bced1e5e516eafc0409a7239fb6541bb.
  • CONVEX_INTERNAL_URL ajustado para o endpoint publico, evitando falhas de DNS interno (ENOTFOUND sistema_convex_backend).
  • Tratamento explicito para tokens revogados/expirados/invalidos nas rotas /api/machines/* e chat.
  • Limpeza de documento legado no Convex (liveChatSessions id pd71bvfbxx7th3npdj519hcf3s7xbe2j).

Backups gerados

  • /root/pg-backups/sistema_chamados_pg16_20251218215925.dump
  • /root/pg-backups/sistema_chamados_pg18_20251218215925.dump
  • Convex: /var/lib/docker/volumes/sistema_convex_data/_data/db.sqlite3.backup-20251218165717
  • Observacao: foi gerado um arquivo extra db.sqlite3.backup- (sem timestamp) por comando incorreto.

Procedimento (principais comandos)

# 1) Backup dos bancos
docker exec -u postgres <pg16> pg_dump -Fc -d sistema_chamados -f /tmp/sistema_chamados_pg16_20251218215925.dump
docker exec -u postgres <pg18> pg_dump -Fc -d sistema_chamados -f /tmp/sistema_chamados_pg18_20251218215925.dump

# 2) Parar o web durante a migracao
docker service scale sistema_web=0

# 3) Restaurar dump do pg16 no pg18
docker exec -u postgres <pg18> psql -c "DROP DATABASE IF EXISTS sistema_chamados;"
docker exec -u postgres <pg18> psql -c "CREATE DATABASE sistema_chamados OWNER sistema;"
docker cp /root/pg-backups/sistema_chamados_pg16_20251218215925.dump <pg18>:/tmp/sistema_chamados_restore.dump
docker exec -u postgres <pg18> pg_restore -d sistema_chamados -Fc /tmp/sistema_chamados_restore.dump

# 4) Atualizar stack (com variaveis exportadas)
set -a; . /srv/apps/sistema/.env; set +a
docker stack deploy --with-registry-auth -c /srv/apps/sistema/stack.yml sistema

# 5) Desativar pg16
docker service scale postgres=0

Ajustes em stack.yml

  • DATABASE_URL apontando para postgres18:5432.
  • CONVEX_INTERNAL_URL apontando para https://convex.esdrasrenan.com.br.
  • Imagem do Convex ajustada para a tag acima.

Resultado

  • sistema_web voltou com 2 replicas saudaveis.
  • sistema_convex_backend rodando na tag informada.
  • postgres (pg16) desativado no Swarm.
  • Healthcheck OK: GET /api/health e GET /version.

Observacoes operacionais

  • O deploy do stack precisa de variaveis exportadas do .env. Sem isso, NEXT_PUBLIC_* fica vazio e o POSTGRES_PASSWORD nao e propagado, causando P1000 no Prisma.