El 17 de octubre de 2011 10:12, "I.N.T. - Dpto. programación" < dpto.programac...@grupo-int.com> escribió:
> Hola a tod@s, > > Me ha surgido el siguiente problema pero no veo cómo solucionarlo, quizás > la respuesta esté en la lista y ya se ha respondido, pero no he sido capaz > de encontrarlo... > > El problema es que tenemos un servidor PostgreSQL cuyas bases de datos > están con codificación LATIN1 y SQL_ASCII, que en su momento eran perfectas > y han funcionado muy bien. > > Tenemos que migrarlas a un nuevo servidor porque el actual se ha quedado un > poco obsoleto, pero éste último debe estar obligatoriamente en UTF8 (todas > las bases de datos, por cuestiones de diferentes idiomas a almacenar en > ellas: checo, eslovaco, etc...), es decir, una encriptación "universal"... > > Hacemos todos los días la copia de seguridad del anterior servidor con > pg_dump, funcionando y recuperando (pg_restore) perfectamente los datos. > > La cuestión es que pg_restore no permite recuperar esas bases de datos > (*.backup, LATIN1 y SQL_ASCII) sobre el nuevo servidor (UTF8). Me dice que > la encriptación es incorrecta y no me recupera ningún dato. > > He mirado los parámetros de pg_restore y no veo cómo hacerlo. > > ¿Alguien podría orientarme sobre cómo puede hacerse? La forma "cutre" que > se me ocurre es volcar las tablas del viejo servidor a Access y traspasarlas > (con Access de nuevo, obviamente) al nuevo servidor, pero aparte de que me > llevaría bastante más tiempo y no queremos tener parado al cliente > excesivamente, me parece una auténtica chapuza... > > Cualquier ayuda al respecto (solución, enlace a página, etc...) será > agradecida enormemente. Hay que tener en cuenta que la recuperación tendrá > que mantener los caracteres especiales del español (tíldes, eñes, etc...)... > > Un saludo, > > Luis > > P.D.- Si necesitais más información de los sistemas que utilizamos en cada > servidor (codificación, versiones, etc...) os las paso > - > Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org > **) > Para cambiar tu suscripción: > http://www.postgresql.org/**mailpref/pgsql-es-ayuda<http://www.postgresql.org/mailpref/pgsql-es-ayuda> > Sin probar se me ocurre algo asi (sin probar): A tu respaldo con pg_dump cambia que cree la base de datos de LATIN-1 a UTF8 (un sed te puede ayudar - sed "s/LATIN-1/UTF8/g" ) En lugar de usar pg_restore usa psql con una variable de entorno ENCODING=UTF8 pgsql < archivo.sql -- ________________________________________ Lo bueno de vivir un dia mas es saber que nos queda un dia menos de vida