PostgreSQL versi lama tidak seketat kepatuhan UTF-8 dibandingkan versi yang lebih baru. Agaknya Anda mencoba memulihkan data yang berisi UTF-8 yang tidak valid dari versi yang lebih lama ke versi yang lebih baru.
String yang tidak valid harus dibersihkan. Anda dapat mengikuti prosedur tersebut untuk setiap tabel yang tidak diimpor karena kesalahan berikut:
-
Ekstrak isi tabel dari file dump ke file teks biasa SQL:
pg_restore --table=tablename --data-only dumpfile >plaintext.sql
-
Hapus karakter yang tidak valid dalam editor teks atau secara otomatis dengan
iconv
:iconv -c -f UTF-8 -t UTF-8 <plaintext.sql >plaintext-cleaned.sql
-
Impor data yang telah dibersihkan:
psql dbname < plaintext-cleaned.sql