Files
DeskcommCRM/.changes/backfill-0068-nao-duplica-preco.md
T
melgarafaelandClaude Opus 5.5 627050fcfb fix(baseline): desempate total no backfill 0068 (#1998)
O order by do distinct on desempatava só pelo preço de entrada: dois
provedores com a mesma entrada e saída diferente escolhiam uma linha
arbitrária. Agora desempata por saída e depois por provedor.
Acrescenta a quebra de linha final do fragmento.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 12:47:17 -03:00

1.1 KiB

impacto, secao, titulo
impacto secao titulo
nada_mudou corrigido O update.sh não falha mais com "duplicate key ... ai_pricing_pkey" quando um mesmo modelo está cadastrado em dois provedores

A atualização do aplicativo parava na etapa "Atualizando o banco de dados" com erro duplicate key value violates unique constraint "ai_pricing_pkey" quando o mesmo modelo existia ativo, com preço, em dois provedores ao mesmo tempo (ex.: openrouter e requesty) e ainda não tinha linha em ai_pricing. Como ai_models permite um model_id por provedor, o backfill de preços gerava duas linhas iguais dentro do mesmo comando e a chave primária (que é só o model) recusava a segunda. O erro não deixava nenhuma versão atualizar nem voltar com --force naquela instalação.

Agora o backfill emite uma única linha por modelo, escolhendo de forma determinística o provedor de menor preço quando houver o mesmo modelo em mais de um provedor; o mecanismo idempotente (não reescrever preço já existente) continua intacto. Quem estava travado por esse erro basta rodar a atualização de novo: ela completa sem ação manual no banco.

Contribuição de @webtecnica (#2008).