Este artigo explica que sua sequência pode estar fora de sincronia e que você precisa restaurá-la manualmente.
Um trecho do artigo caso o URL mude:
Se você receber esta mensagem ao tentar inserir dados em um banco de dados PostgreSQL:
ERROR: duplicate key violates unique constraint
Isso provavelmente significa que a sequência de chave primária na tabela com a qual você está trabalhando ficou de alguma forma fora de sincronia, provavelmente devido a um processo de massimport (ou algo nesse sentido). Chame isso de "bug bydesign", mas parece que você precisa redefinir manualmente o índice de uma chave primária após a restauração de um arquivo de despejo. De qualquer forma, para ver se seus valores estão fora de sincronia, execute estes dois comandos:
SELECT MAX(the_primary_key) FROM the_table;
SELECT nextval('the_primary_key_sequence');
Se o primeiro valor for maior que o segundo valor, sua sequência está fora de sincronia. Faça backup do seu banco de dados PG (apenas por precaução) e execute este comando:
SELECT setval('the_primary_key_sequence', (SELECT MAX(the_primary_key) FROM the_table)+1);
Isso definirá a sequência para o próximo valor disponível que for superior a qualquer chave primária existente na sequência.