PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Fehler ungültige Bytesequenz beim Wiederherstellen der PostgreSQL-Datenbank

Ältere Versionen von PostgreSQL waren bei der UTF-8-Konformität nicht so streng wie neuere Versionen. Vermutlich versuchen Sie, Daten mit ungültigem UTF-8 aus einer solchen älteren Version in einer neueren Version wiederherzustellen.

Die ungültigen Zeichenfolgen müssen bereinigt werden. Sie können dieses Verfahren für jede Tabelle befolgen, die aufgrund dieser Fehler nicht importiert wurde:

  1. Extrahieren Sie den Inhalt der Tabelle aus der Speicherauszugsdatei in eine einfache SQL-Textdatei:

    pg_restore --table=tablename --data-only dumpfile >plaintext.sql
    
  2. Entfernen Sie die ungültigen Zeichen in einem Texteditor oder automatisch mit iconv :

    iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
    
  3. Importieren Sie die bereinigten Daten:

    psql dbname < plaintext-cleaned.sql