Re: de versión 8 a versión actual

From: "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com>
To: jorge gerardo fernandez lugo <jorgegfl(at)hotmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: de versión 8 a versión actual
Date: 2023-05-21 23:01:57
Message-ID: CANm+PCCvLDp=AFaS3dwQszze3dCSumJzpRGjmGd09jfeyTjA1A@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Jorge, te paso el código que utilicé (respaldo.sql es el dump en
formato plano de la BD):

import codecs

def encode_invalid_chars(input_file, output_file):
with codecs.open(input_file, 'r', encoding='utf-8', errors='replace')
as file_in:
with codecs.open(output_file, 'w', encoding='utf-8') as
file_out:
for line in file_in:
encoded_line = line.encode('utf-8',
errors='replace').decode('utf-8')
file_out.write(encoded_line)
input_file = 'respaldo.sql'
output_file = 'respaldo_fixed.sql'
encode_invalid_chars(input_file, output_file)

Luego ejecutar el código con:
python utf8detect.py

El sáb, 20 may 2023 a las 23:27, jorge gerardo fernandez lugo (<
jorgegfl(at)hotmail(dot)com>) escribió:

> Hola Guillermo,
> Muy bueno que hayas pasado de 8.0 a una nueva (11 creo por lo que ví).
>
> Me interesa la parte del script python. Ya que tengo un problema similar
> con unos postgresql 8.4 con ASCII cómo codificación, que al pasarlos a UTF8
> se rompe con los caracteres que no puede manejar.
>
> Apreciaré mucho si podés compartir el código.
>
> Saludos,
> Jorge Fernández
>
> Obtener Outlook para Android <https://aka.ms/AAb9ysg>
>
> ------------------------------
> *De:* Guillermo E. Villanueva <guillermovil(at)gmail(dot)com>
> *Enviado:* jueves, 18 de mayo de 2023 09:33
> *Para:* pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
> *Asunto:* Re: de versión 8 a versión actual
>
> Pude realizar la migración desde 8.0
> Por si sirve la información a otros, les comento algunas cosas:
>
> Las complicaciones se dieron por varios factores:
>
> - Versión muy antigua de postgres
> - Codificación de datos de origen ascii con algunos caracteres no
> codificables en utf8
> - Utilización de campos large objects en el origen
>
>
>
> Para la migración se utilizaron los siguientes recursos
>
> - Pg_dump (versión postgres destino) formato custom para tabla
> pg_largeobject (blobs)
> - Pg_dump (versión postgres destino) formato plano para datos de
> esquema public
> - Programación en Python para detección y reemplazo de caracteres no
> codificables en utf8, actúa sobre el archivo salida del punto anterior.
> - Funciones plpgsql para el traspaso de large object a bytea
>
>
> Saludos
>
> El vie, 5 may 2023 a las 11:29, Guillermo E. Villanueva (<
> guillermovil(at)gmail(dot)com>) escribió:
>
>> Buen día, en un sistema viejo, tengo una base de datos postgresql 8.0 la
>> cual tiene tablas con columnas de tipo lo (large objects).
>> Tengo que migrarlo a una versión mas actual de postgres y a las columnas
>> de tipo lo las convertiré en bytea.
>> Normalmente, para la migración de datos, usaba una herramienta que se
>> llama ESF Migration, esta me permitió pasar datos hasta desde informix con
>> columnas blob sin problemas, pero en este caso, no me está trayendo los
>> datos correctamente, trae el id del objeto en vez de traer los datos
>> completos.
>>
>> ¿Alguna sugerencia? pg_upgrade convierte large object en bytea? que otra
>> opción? también intenté con pg_dump -Fc -b y luego pg_restore, pero me da
>> error diciendo que no existe el tipo lo al querer restaurar.
>>
>> Desde ya muchas gracias
>>
>> Guillermo
>>
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo E. Villanueva 2023-05-22 11:45:54 Re: retención de arhivos wal
Previous Message Martín Marqués 2023-05-21 07:45:22 Re: retención de arhivos wal