Les anciennes versions de PostgreSQL n'étaient pas aussi strictes sur la conformité UTF-8 que les versions plus récentes. Vous essayez probablement de restaurer des données contenant de l'UTF-8 invalide d'une version aussi ancienne vers une version plus récente.
Les chaînes non valides doivent être nettoyées. Vous pouvez suivre cette procédure pour chaque tableau qui n'a pas été importé en raison de ces erreurs :
-
Extrayez le contenu de la table du fichier de vidage dans un fichier texte brut SQL :
pg_restore --table=tablename --data-only dumpfile >plaintext.sql
-
Supprimer les caractères invalides dans un éditeur de texte ou automatiquement avec
iconv
:iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
-
Importez les données épurées :
psql dbname < plaintext-cleaned.sql