PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Erro de sequência de bytes inválida ao restaurar o banco de dados PostgreSQL


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:

  1. 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
    

  2. Remova os caracteres inválidos em um editor de texto ou automaticamente com iconv :
    iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
    

  3. Importe os dados higienizados:
    psql dbname < plaintext-cleaned.sql