As versões mais antigas do PostgreSQL não eram tão rigorosas quanto à conformidade com UTF-8 do que as versões mais recentes. Presumivelmente, você está tentando restaurar dados contendo UTF-8 inválido de uma versão mais antiga para uma versão mais recente.
As strings inválidas devem ser limpas. Você pode seguir esse procedimento para cada tabela que não foi importada devido a estes erros:
-
Extraia o conteúdo da tabela do arquivo de despejo em um arquivo de texto simples SQL:
pg_restore --table=tablename --data-only dumpfile >plaintext.sql
-
Remova os caracteres inválidos em um editor de texto ou automaticamente comiconv
:
iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
-
Importe os dados higienizados:
psql dbname < plaintext-cleaned.sql