# 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
Ensuite, j'obtiens cette erreur et l'importation échoue pour une table entière.La base de données PostgreSQL en mouvement échoue sur les caractères non-ascii avec 'valeur trop longue'
psql: /home/me/myDatabase.tar: 660266: ERREUR: valeur trop long pour caractère de type variable (100) CONTEXTE: COPIER myTable, ligne 591, colonne MaColonne: « Un ancien membre de l'Etat Departmentâs âFuture du projet Iraqâ et maintenant à l'Atlantique ... Cou »
les chapeau a sont ces ennuyeux bouclés guillemets simples et doubles. Il me semble qu'ils s'intègrent dans la colonne au début, mais quelque part dans le processus d'exportation/importation, ils se développent, et ne tiennent plus dans la colonne de variation de caractères (100).
Je suis en fait déplacer une base de données en direct sur un serveur j'ai peu la permission pour, donc une seule solution sql serait génial. Est-il possible de faire quelque chose comme
UPDATE myTable SET myColumn = removeNonAscii(myColumn) WHERE hasNonAscii(myColumn)
EDIT: habe obtenu. J'ai changé
createdb -h myServer -U myUser -T template0 myDatabaseCopy
à
createdb -h myServer -U myUser -T template0 -E UTF8 myDatabaseCopy
et qui a fait l'affaire.