54 lines
2.6 KiB
Markdown
54 lines
2.6 KiB
Markdown
# 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.
|