PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Errore sequenza di byte non valida durante il ripristino del database PostgreSQL

Le versioni precedenti di PostgreSQL non erano così rigide sulla conformità a UTF-8 rispetto alle versioni più recenti. Presumibilmente stai tentando di ripristinare i dati contenenti UTF-8 non validi da una versione così precedente a una versione più recente.

Le stringhe non valide devono essere ripulite. Puoi seguire questa procedura per ogni tabella che non è stata importata a causa di questi errori:

  1. Estrarre il contenuto della tabella dal file dump in un file di testo semplice SQL:

    pg_restore --table=tablename --data-only dumpfile >plaintext.sql
    
  2. Rimuovi i caratteri non validi in un editor di testo o automaticamente con iconv :

    iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
    
  3. Importa i dati sanificati:

    psql dbname < plaintext-cleaned.sql