22 lines
1.1 KiB
Markdown
22 lines
1.1 KiB
Markdown
# ClientFlow v4927.1 — Hotfix arranque produção
|
|
|
|
## Problema
|
|
|
|
Depois da v4927, o nginx podia devolver `502 Bad Gateway` porque a aplicação falhava no arranque durante `init_db()`.
|
|
|
|
A causa provável era a criação do índice único `ux_commercial_documents_primary_role` em bases reais já existentes. Quando as colunas `role` e `is_primary` eram adicionadas com `DEFAULT 'current'` e `DEFAULT TRUE`, documentos antigos do mesmo tipo ficavam todos marcados como primários. Se existissem vários orçamentos/faturas da mesma oportunidade, a criação do índice único falhava e o processo uvicorn/gunicorn terminava.
|
|
|
|
## Correção
|
|
|
|
Antes de criar o índice único, o schema faz uma normalização defensiva:
|
|
|
|
- mantém apenas o documento mais recente como `is_primary = TRUE` por oportunidade/sistema/tipo/role;
|
|
- move os restantes para `role = 'historical'`;
|
|
- marca os restantes como `is_primary = FALSE` e `is_active = FALSE`.
|
|
|
|
## Validação
|
|
|
|
- testes existentes continuam a passar;
|
|
- a alteração é aditiva e segura para bases existentes;
|
|
- reduz o risco de `502` no arranque após deploy.
|