Como puedo solucionar que al restaurar un backup en postgres 9, me genera los siguientes errores en las tablas que contienen campos bytea
en el log muestra por ejemplo
2014-05-30 09:49:39 COT ERROR: invalid input syntax for type bytea
2014-05-30 09:49:39 COT CONTEXT: COPY estado_clientes, line 1, column estcli_imagen: “\x4749463839610c000c00a20000ffffffbebebeffa500708090ff0000000000ffffff00000021ff0b4e4554534341504532…”
Si, estoy con toba_2-4-1 y postgres 9.1 en ubunto,
el error sucede en todas las tablas donde se ha ingresado información sobre campos bytea.
En el servidor de desarrollo como es postgres 8.3 e windows no hemos tenido ese problema, el problema es cuando queremos pasar de producción a desarrollo para tener actualizadas las bases.
Hay algo mas que se me ocurre, ¿Tenes instalado en producción dos versiones de PostgreSQL?.. si es así, suele pasar que Ubuntu/Debian deja como binario por default “pg_dump” al de la versión mas vieja, lo que causa que los backups no siempre se hagan bien.
Proba hacer un “pg_dump --version” y confirma que la versión sea de la rama 9.1, si no lo es avisanos que lo seguimos trabajando.
Por un lado la exportacion con COPY… suele traer algunos dolores de cabeza.
Por otro lado, en 8.3 la exportacion de bytea… se hace con el formato ‘escape’ (mas info), que en teoria tendria que ser levantado correctamente por la version 9.x… pero con algunas cosas puede romperse, fijate que al final de la pagina dice que dependiendo como lo exportaste, podes tener que escapar manualmente ciertos caracteres para que no se rompa.
Lo mejor seria que lo puedas hacer con pg_dump, en lo posible exportando a sentencias insert.
Por otro lado, tener 2 versiones de motor de bd diferentes (y encima tan diferentes) entre desarrollo y produccion, es para dolores de cabeza… por que no actualizan la version de desarrollo a algo un poco mas moderno, aunque sea una 8.4 (que aun esta soportada).
Este problema aun te esta sucediendo ? De ser asi, me pasas por favor el comando que usas para hacer el backup y el restore ? pudiste exportar usando sentencias insert como te dijo Richard ?
No lo pude solucionar, nos toco instalar las mismas versiones tanto en producción como en desarrollo, por lo que pude leer en internet es que en la versión 9 el caracter // crea dicho problema al tratar de restaurar.