Das Verschieben der PostgreSQL-Datenbank schlägt bei Nicht-ASCII-Zeichen mit dem Wert "zu lang" fehl

# Dump my database to a tar file
pg_dump -f myDatabase.tar -F t -h myServer -U myUser -W -i myDatabase
# create a new database
createdb -h myServer -U myUser -T template0 myDatabaseCopy
# restore my database
pg_restore -d myDatabaseCopy -h myServer -U myUser myDatabase.tar

Dann erhalte ich diesen Fehler und der Import schlägt für eine gesamte Tabelle fehl.

psql: /home/me/myDatabase.tar: 660266: FEHLER: Wert zu lang für Typ Zeichen variierend (100) im atlantischen K ... "

Diese Hats sind nervige einfache und doppelte Anführungszeichen. Es sieht für mich so aus, als würden sie zuerst in die Spalte passen, aber irgendwo im Export- / Importprozess werden sie erweitert und passen dann nicht mehr in die Spalte mit variierenden Zeichen (100).

Eigentlich verschiebe ich eine Live-Datenbank auf einen Server, für den ich nur wenige Berechtigungen habe. Daher wäre eine reine SQL-Lösung großartig. Gibt es eine Möglichkeit, so etwas zu tun?

UPDATE myTable SET myColumn = removeNonAscii(myColumn) WHERE hasNonAscii(myColumn)

EDIT: habe es verstanden. ich habe mich verändert

createdb -h myServer -U myUser -T template0 myDatabaseCopy

zu

createdb -h myServer -U myUser -T template0 -E UTF8 myDatabaseCopy

und das hat den Trick getan.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage