Migration einer Datenbank mit Encoding SQL_ASCII nach UTF-8

Hallo zusammen,

das Thema ist nicht neu, aber nach umfangreichen Recherchen im Netz bin ich nicht so richtig schlau geworden, was die richtige Vorgehensweise nun letztendlich ist.

Ausgangslage ist, dass ich auf einem UNIX-System eine best. Datenbank mit Encoding SQL_ASCII in eine neue Datenbank mit Encoding UTF-8 umziehen möchte.

Hierzu mache ich mit pg_dump einen Dump der alten DB, mit pg_restore möchte ich ihn in die neue DB einspielen, was zu diesen Fehlermeldungen führt:

ERROR: invalid byte sequence for encoding "UTF8": 0xdf65
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding"

Habe in einem anderen Beitrag gelesen, dass er den Dump in Klarform erzeugt hat und ihn dann per iconv nach UTF8 konvertiert hat. Das habe ich auch probiert, der Import hat funktioniert.

Ist dies aber die korrekte Vorgehensweise?
Was muss ich tun, um ohne iconv zum Erfolg zu kommen.

Vielen Dank für eure Antworten.

Viele Grüße,
Andreas

Ja.

Was muss ich tun, um ohne iconv zum Erfolg zu kommen.

Gehe einen Schritt nach oben.

Andreas

Also, SQL_ASCII ist eigentlich gar kein Encoding, sondern sagt der Datenbank nur, dass die Daten 1:1 übernommen werden.

Wenn du jetzt zum Beispiel Clients hattest, die “latin1” oder “utf8” gemischt verwendet haben, dann stehen diese Daten auch genau so gemischt in deiner Datenbank.

SQL_ASCII ist das Äquivalent für “ich bin der DBA und weiß, was ich tue”.