# 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
Luego aparece este error y la importación falla para una tabla completa.Mover la base de datos PostgreSQL falla en caracteres no ascii con 'valor demasiado largo'
psql: /home/me/myDatabase.tar: 660266: ERROR: valor demasiado largo para carácter de tipo variable (100) CONTEXTO: copia myTable, línea 591, columna MICOLUMNA: "Un miembro anterior del Estado Departmentâs âFuture del proyecto Iraqâ y ahora en el Atlantic Cou ... "
Esos hat-a's son esas molestas comillas simples y dobles. Me parece que encajan en la columna al principio, pero en algún lugar del proceso de exportación/importación se expanden, y luego ya no caben en la columna de variación de caracteres (100).
En realidad estoy moviendo una base de datos en vivo en un servidor para el que tengo poco permiso, por lo que una solución sql única sería genial. ¿Hay una manera de hacer algo como
UPDATE myTable SET myColumn = removeNonAscii(myColumn) WHERE hasNonAscii(myColumn)
EDIT: habe consiguió. He cambiado
createdb -h myServer -U myUser -T template0 myDatabaseCopy
a
createdb -h myServer -U myUser -T template0 -E UTF8 myDatabaseCopy
y que hizo el truco.