1.1 KiB
1.1 KiB
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 = TRUEpor oportunidade/sistema/tipo/role; - move os restantes para
role = 'historical'; - marca os restantes como
is_primary = FALSEeis_active = FALSE.
Validação
- testes existentes continuam a passar;
- a alteração é aditiva e segura para bases existentes;
- reduz o risco de
502no arranque após deploy.