Error en tablas_conversion

Hola!!
Estoy haciendo la migración de G2 a la versión 3.19.1.
Uno de los scripts me falla, me tira el siguiente error:

2021/09/13 21:37:52 - 01_tablas_conversion - ERROR: duplicate key value violates unique constraint “pk__cnv_pk_tipos_ingreso”
2021/09/13 21:37:52 - 01_tablas_conversion - Detail: Key (tipo_ingreso_g2)=(1) already exists.

Mirando los scripts, observo que /02_Modulos/05_Tablas_Comunes/01_tablas_conversion.sql, trata de hacer un match con algo que no existe (ti_g2.descripcion):


.........
      tipo_ingreso = (SELECT ti.tipo_ingreso
                        FROM mig.sga_tipos_ingreso as ti_g2,
						     sga_tipos_ingreso as ti
                       WHERE ti_g2.tipo_ingreso = mig._cnv_pk_tipos_ingreso.tipo_ingreso_g2
					     AND upper(trim(ti.nombre)) = upper(trim(ti_g2.descripcion))
                      LIMIT 1) -- Por si existe mas de un registro con el mismo nombre
............

Si en 02_Modulos/01_TablasConversionPK/conversiones_tablas_comunes.sql se agrega ese campo en el momento de la creación de la tabla, el bug se soluciona.


-- Table: mig._cnv_pk_tipos_ingreso
CREATE TABLE mig._cnv_pk_tipos_ingreso
(
  tipo_ingreso integer NOT NULL DEFAULT nextval('mig._cnv_pk_tipos_ingreso_seq'::regclass),
  tipo_ingreso_g2 integer NOT NULL,
  existe integer not null default 0,  -- 1 = Existe, 0 = no existe
  migrar integer not null default 1,  -- 1 = migrar, 0 = no migrar
  observaciones varchar(200),
  descripcion varchar(100),
  id_nuevo  integer
)

Estoy en lo correcto?
Saludos!

Iris

Hola
Esa comparación que hace entre nombre y descripcion ya tiene algun tiempo, es raro que no lo reportaran antes.
Por otro lado pensando en la solución estan agregando el campo en mig._cnv_pk_tipos_ingreso y tendria que ser mig.sga_tipos_ingreso descripción
cuando lo que esta ocurriendo es que hay un tipo de ingreso duplicado o mas con el mismo nombre
tal vez si revisamos estas tablas mig.sga_tipos_ingreso y sga_tipos_ingreso as ti podemos llegar a encontrar el tipo de ingreso duplicado o algún dato que deberíamos analizar

muchas gracias
saludos
8

Hola

En la tabla mig.sga_tipos_ingreso hay una fila más:
9 CONDICIONAL CONDICIONAL N

Esta última tupla no existe en la tabla sga_tipos_ingreso.

Y justamente esa es la que pone con los parámetros de migrar en 1 y existe en 0…

El resto de las tuplas las veo iguales.
Cuál puede ser el inconveniente por el cual salta el error de clave duplicada?
Gracias!

Iris

Hola
Sera que se habrá ejecutado 2 veces?
el log dice algo mas?
para poner un poco mas claro mig.sga_tipos_ingreso y mig._cnv_pk_tipos_ingreso tienen 9 registros y sga_tipos_ingreso solo 8

agrego este foro que nos puede ayudar
https://foro.comunidad.siu.edu.ar/index.php?topic=15751.msg68671
muchas gracias
saludos
4

Hola Iris, no debes agregar el campo “descripcion” en la tabla mig._cnv_pk_tipos_ingreso. Fijate que de esta tabla no se hace referencia a ese campo en la query del UPDATE que enviaste en el 1er mensaje.
Lo probé y funciona bien ese update.

¿Cual es el error que da postgres si corres ese update desde algun editor sql ?

Hola Alejandro

Si, después me di cuenta de dicho error.
No se debe agregar el campo “descripcion” en la tabla mig._cnv_pk_tipos_ingreso.

Volví a iniciar todo el proceso de migración desde cero, y ese error ya no lo obtengo.
Supongo será como decía Jesica, que lo habré intentado ejecutar 2 veces sin darme cuenta.

Perdón por la molestia!
Gracias.

Iris