35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# ClientFlow v4927.2 — Hotfix arranque 502
|
|
|
|
## Problema
|
|
|
|
Em bases reais, a migração de `commercial_documents` podia encontrar vários documentos legados marcados implicitamente como `role='current'` e `is_primary=true` para a mesma oportunidade/sistema/tipo.
|
|
|
|
A versão v4927.1 tentava normalizar antes de criar o índice único, mas em produção continuou a existir duplicação suficiente para o PostgreSQL falhar em:
|
|
|
|
```sql
|
|
CREATE UNIQUE INDEX IF NOT EXISTS ux_commercial_documents_primary_role
|
|
```
|
|
|
|
Quando este erro acontece dentro de `init_db()`, a aplicação FastAPI/uvicorn não arranca e o nginx devolve `502 Bad Gateway`.
|
|
|
|
## Correção
|
|
|
|
A v4927.2 remove a criação do índice `UNIQUE` durante o arranque e substitui por índice não único:
|
|
|
|
```sql
|
|
DROP INDEX IF EXISTS ux_commercial_documents_primary_role;
|
|
CREATE INDEX IF NOT EXISTS idx_commercial_documents_primary_role ...;
|
|
```
|
|
|
|
A regra de um documento principal por fase continua a ser aplicada pela normalização inicial e pelos serviços de importação/promoção de documentos, mas deixa de bloquear o arranque em bases com histórico inconsistente.
|
|
|
|
## Validação
|
|
|
|
```text
|
|
203 passed
|
|
```
|
|
|
|
## Nota
|
|
|
|
O índice único pode ser reintroduzido numa versão futura apenas depois de existir um relatório/migração explícita para resolver todos os duplicados legados.
|