Descobrimos que as chaves primárias geralmente ficam atrás do nome da tabela principal. Este script nos ajudou a identificar e corrigir aqueles com problemas.
select
table_name,
constraint_name ,
'ALTER TABLE ' || table_name || ' RENAME CONSTRAINT ' || constraint_name || ' TO ' || left(table_name, 58) || '_pkey;'
from information_schema.table_constraints tc
where constraint_type = 'PRIMARY KEY'
and constraint_name <> left(table_name, 58) || '_pkey';
Isso encontra todas as tabelas onde o nome da chave primária não é mais o padrão "padrão" ( <tablename>_pkey
) e cria um script de renomeação para cada uma.
O limite de 58 caracteres acima no código acima deve levar em conta o tamanho máximo dos nomes de restrição (63 bytes).
Obviamente, verifique o que é retornado antes de executá-lo. Espero que isso seja útil para outros.