SOLUCIONADO: Migracion DB 3.0.0 a 3.4.1

Estimados…
Me encuentro con un error en mi sistema 3.4.1
Cuando realizo la consulta:
SELECT * FROM negocio.app_versiones_base

1;“3.0.0 (5)”;5;“Creacion de la Base”;“2012-11-29 11:52:29.070639-03”;“0”
Sale que tengo la version 3.0.0

Entonces ejecuto la siguiente instruccion:
toba proyecto migrar_base -p guarani –i <id_instancia> (Esto me pasa desde la version actual o empezando de nuevo desde la version 3.1 a la 3.4.1)

y me arroja el error:


– Recorro cada uno de los llamados en los que se encuentra la mesa de examen origen.


llo := 0;
FOR llamados_origen IN SELECT sga_llamados_mesa.llamado as llamado,
sga_llamados_mesa.llamado_mesa as llamado_mesa,
sga_llamados_mesa.entidad as entidad,
sga_llamados_mesa.fecha as fecha,
sga_llamados_mesa.hora_inicio as hora_inicio,
sga_llamados_mesa.hora_finalizacion as hora_finalizacion,
sga_periodos.fecha_inicio as fecha_inicio,
sga_periodos.fecha_fin as fecha_fin
FROM sga_llamados_mesa, sga_llamados_turno, sga_periodos
WHERE sga_llamados_mesa.mesa_examen = _mesa_origen
AND sga_llamados_mesa.llamado = sga_llamados_turno.llamado
AND sga_periodos.periodo = sga_llamados_turno.periodo
ORDER BY sga_llamados_mesa.fecha ASC
LOOP
llo := llo + 1;
lld := 0;
_llamado_destino := NULL;
_llamado_fecha_inicio := NULL;
_llamado_fecha_fin := NULL;

  _existe_llamado_destino := false;

  -- Recorro los llamados del turno destino para buscar el llamado correspondiente al llamado del turno origen actual.
  FOR llamados_dest IN SELECT llamado, nombre, fecha_inicio, fecha_fin
               FROM sga_llamados_turno, sga_periodos
               WHERE sga_llamados_turno.periodo =  sga_periodos.periodo
                 AN

… CORTADO POR EXCEDER EL LIMITE

Hola Emiio.

Lee detalladamente los instructivos y los path de los repositorios de cada uno.
Los pasos para actualizar las distintas versiones del sistema son distintos.
Primero tenes q pasar de la 3.0.0 a la 3.1.0. Si pasas de la 3.0.0 a la 3.4.1 tira error!
Despues con otro instructivo pasas de la 3.1.0 a la 3.4.1

Saludos.

Gonzalo

Teoricamente estoy en la version 3.1, pero al ejecutar: SELECT * FROM negocio.app_versiones_base
Sigue diciendo que estoy en la version 3.0.0 (5)

Mirando el instructivo…, (y atento ¿¿¿¿no???)… tengo la opcion de actualizar la base de datos de negocio…, que creo que seria la instruccion que me permitiria cambiar la version

toba proyecto actualizar_bd -p guarani -i <id_instancia> me dice que no es necesario actualizar la base…

Entonces…, como hago para cambiar la verfsion de 3.0.0 a 3.1

gracias!!

Revision Actual de la BD : 0

Actualizando el directorio de Scripts de actualización de la BD…
At revision 12631.


Nº Revision a actualizar la BD : 12631

Migrando la base de la revisión 0 hasta la revisión 12631

No es necesario actualizar la BD. No se han realizado cambios entre las revisiones 0-12631

OK

Emilio:

Me pasas el resultado de estas 2 consultas: (suponiendo que negocio es el esquema donde esta guarani)


select * from negocio.par_parametros_sistema where parametro = 'mat_genera_legajo_inscripcion' ;

select * from negocio.par_configuraciones where nombre = 'clave_usuario_convertida' ;

Saludos
Sergio.

Sergio va las consultas:

select * from negocio.par_parametros_sistema where parametro = ‘mat_genera_legajo_inscripcion’ ;

“mat_genera_legajo_inscripcion”;“Indica si se genera o no el legajo automáticamente en la inscripción a propuesta y en inscripción desde preinscripción”;“E”;“S”;1;“”;“”;“N”;“”

select * from negocio.par_configuraciones where nombre = ‘clave_usuario_convertida’ ;

“clave_usuario_convertida”;“1”;“”;“E”

Saludos

Emilio:

   En la tabla app_versiones_base en la columna observaciones, debería estar la revisión del código php que estaba en el momento que se realizó la operación sobre la base, ya sea creación o actualización (en este momento hay un 0) por esta causa no corre ningún diferencial. Por la fecha yo pienso que debería ser alguna revisión cerca de 11577, que tiene fecha  28/11/2012 que es el último commit antes de la fecha que tienen ahí en app_versiones_base.

Antes que nada por favor mantené un backup de la base.

Para Actualizar ese campo


 UPDATE app_versiones_base SET observaciones = 11577

Luego de esto, actualiza la base, con el actualizar_bd, (el código debería estar apuntando y actualizado al tope de
http://repositorio.siu.edu.ar/svn/guarani/branches/3.0.0_uunn/)

Saludos
Sergio

Sergio… que significa: “el código debería estar apuntando y actualizado al tope de
http://repositorio.siu.edu.ar/svn/guarani/branches/3.0.0_uunn/)”
como puedo verificar eso?

Si ejecuto:
toba proyecto actualizar_bd -p guarani -i <id_instancia>


Revision Actual de la BD : 11577

Actualizando el directorio de Scripts de actualización de la BD…
At revision 12636.


Nº Revision a actualizar la BD : 12636

Migrando la base de la revisión 11577 hasta la revisión 12636

No es necesario actualizar la BD. No se han realizado cambios entre las revisiones 11577-12636

OK


TIEMPO: 3,461 segundos

Gracais

Emilio:

Fijate en el Item 1 del instructivo Actualización de Guarani3 a la v3.4.1 (Requisitos), ahí dice que “Que el sistema se encuentre en la versión 3.1.0 (Revisión SVN mayor a 12131)” , Esto quiere decir que antes de comenzar con la actualización a 3.4.1 debes estar actualizado a la versión 3.1.0, para esto antes que nada, deberías seguir este instructivo Actualización de Guarani3 hasta la versión 3.1 Cuando hicieron la instalación de 0 hicieron el svn checkout desde http://repositorio.siu.edu.ar/svn/guarani/branches/3.0.0_uunn/ , y es ahí donde deben estar para seguir los pasos de la actualización a 3.1.0. Según tengo entendido ustedes ahora están apuntando a : http://repositorio.siu.edu.ar/svn/guarani/versiones/3.4.1 por un svn info que te pedí que hicieras.

Pasando en Limpio:

  1. Actualizar al tope de la versión 3.1.0
    Estando el código apuntando a http://repositorio.siu.edu.ar/svn/guarani/branches/3.0.0_uunn/, seguir INSTRUCTIVO Actualización de Guarani3 hasta la versión 3.1
    Fijate que en esta actualización se usa el comando actualizar_bd
    (si en este punto te dice “No es necesario actualizar la BD. No se han realizado cambios entre las revisiones” puede ser porque:
  • Ya estén aplicados esos cambio. Cosa que dudo porque no está reflejado en la tabla app_versiones_base.
  • Tengas un 0 en el campo observaciones de la tabla app_versiones_base (debería tener la revisión del código php al momento de la ultima actualización o creación como expliqué en el post anterior)
  • Tengas el código apuntando a la rama de svn de la versión nueva 3.4.1 (este creo que es el caso)
  1. Luego Seguir el INSTRUCTIVO Actualización de Guarani3 a la v3.4.1
    Fijate que en esta actualización se usa el comando migrar_base

    Aclaración
    : lo que me parece que pasó, es que comenzaron a actualizar a la versión 3.4.1 sin haber terminado de actualizar la base a 3.1 porque tenían un 0 en en el campo observaciones de la tabla app_versiones_base y por lo tanto el comando actualizar_bd no corrió los diferenciales correspondientes.

Saludos
Sergio.

Sergio empece de nuevo la actualizacion…, el tema es el siguiente:

Yo actualmente cuando accedo a la pantalla de guarani me dice que estoy en la version 3.4.1, pero evidentemente la DB no lo esta…
Con Gustavo que me ayudo inicialmente en la actualizacion de la 3.0 a la 3.1 dimos por sentado que se actualizo bien solo viendo la version por pantalla. Despues prosegui con la 3.4.1…

Entonces puedo iniciar el proceso desde 0… o sea vuelvo a ejecutar el intructivo de actualizacion de 3.1 y postsriormente 3.4.1??

Igualmente para avanzar lo estoy haciendo en una maqauina virtual de prueba…, y efectivamente cuando llego al ANEXO VII - Actualizar la base de datos de negocio y ejecuto el comando:

toba proyecto actualizar_bd -p guarani -i <id_instancia> me dice que no es necesario actualizar DB…

Deduzco lo mismo que vos…, que tengo el código apuntando a la rama de svn de la versión nueva 3.4.1.

La pregunta concreta seria: como defino el svn al que quiero apuntar y como se a cual apunto?

Como defino que el svn sea http://repositorio.siu.edu.ar/svn/guarani/branches/3.0.0_uunn/ y no otro…, o como despues vuelvo al svn del 3.4.1

solo veo que hago un svn update (ANEXO IV - Actualizar la versión de SIU-Guaraní 3) pero no veo donde defino la ruta…

Gracias…

Emilio:

          Para saber a que a que rama estás apuntando, es asi: en la raiz del proyecto toba/proyectos/guarani, hace un svn info., el cambio lo hiciste en este punto de la actualización a 3.4.1 [url=http://repositorio.siu.edu.ar/trac/Portal-G3/wiki/NotasTecnicas/ActualizG3#Actualizarlaversi%C3%B3ndeSIU-Guaran%C3%AD3] Actualizar la versión de SIU-Guaraní 3[/url] donde haces un svn sw (switch). Deberías hacer lo mismo pero ahora que apunte al branch anterior http://repositorio.siu.edu.ar/svn/guarani/branches/3.0.0_uunn/ , terminar la actualización de 3.1 y  luego cuando sigas los pasos de la actualización 3.4.1 vas a llegar a ese punto y volvés nuevamente a este branch

Saludos
Sergio

Siguiendo las indicaciones me vuelvo a encontrar con un error conocido. Voy a volver a empezar nuevamente la actualizzacoin de una copia de 3.0. Esta no tiene todos los datos y los usuarios no la aceptan sin la nueva informacion. Pero comprobare si es un error de la actualizacion o no. Mantendre informado.

Detallo errores junto con otra informacion de interes.

toba proyecto migrar_base -p guarani –i <id_instancia>
– ++++++++++++++++++++++++++++++ Fin Function sui_departamentos_partidos ++++++++++++++++
– REVOKE EXECUTE ON FUNCTION sui_departamentos_partidos (integer, varchar, integer, char) FROM public;
GRANT EXECUTE ON FUNCTION sui_departamentos_partidos (integer, varchar, integer, char) TO public;
– +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
– SIU-GUARANI 3
– Version 3.0.0
– Function: sui_localidades
– Inserta una localidad. Si ya existía, la actualiza
– +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
– DROP FUNCTION sui_localidades (integer, varchar, varchar, integer, integer);
CREATE OR REPLACE FUNCTION sui_localidades (
p_localidad Integer,
p_nombre Varchar(100),
p_nombre_abreviado Varchar(60),
p_dpto_partido Integer,
p_ddn Integer)
RETURNS void AS
$BODY$

BEGIN
– Inserta la localidad
INSERT INTO mug_localidades (localidad, nombre, nombre_abreviado, dpto_partido, ddn)
VALUES (p_localidad, p_nombre, p_nombre_abreviado, p_dpto_partido, p_ddn);

– Falla el insert por primary key, existe la localidad, entonces actualizo los datos
EXCEPTION
WHEN unique_violation THEN
– Actualiza la localidad
UPDATE mug_localidades
SET (nombre, nombre_abreviado, dpto_partido, ddn) = (p_nombre, p_nombre_abreviado, p_dpto

… CORTADO POR EXCEDER EL LIMITE

select * from app_versiones_base

2;“3.1.0”;0;“/usr/local/proyectos/toba/proyectos/guarani/BD/Diferenciales/000012.sql”;“2013-05-29 16:06:59.589503-03”;“12639”
3;“3.1.0”;0;“/usr/local/proyectos/toba/proyectos/guarani/BD/Diferenciales/000013.sql”;“2013-05-29 16:06:59.589503-03”;“12639”
1;“3.0.0 (5)”;0;“Creacion de la Base”;“2012-11-29 11:52:29.070639-03”;“11577”
4;“3.1.0”;0;“/usr/local/proyectos/toba/proyectos/guarani/BD/Diferenciales/00014i.sql”;“2013-05-29 16:06:59.589503-03”;“12639”

select * from negocio.par_parametros_sistema where parametro = ‘mat_genera_legajo_inscripcion’ ;
“mat_genera_legajo_inscripcion”;“Indica si se genera o no el legajo automáticamente en la inscripción a propuesta y en inscripción desde preinscripción”;“E”;“S”;1;“”;“”;“N”;“”

select * from negocio.par_configuraciones where nombre = ‘clave_usuario_convertida’ ;
“clave_usuario_convertida”;“1”;“”;“E”

postgres@G3-P:/usr/local/proyectos/toba/proyectos/guarani$ sudo svn info
Path: .
URL: http://repositorio.siu.edu.ar/svn/guarani/versiones/3.4.1
Repository Root: http://repositorio.siu.edu.ar/svn/guarani
Repository UUID: 0deb212f-fe2f-48c7-81b1-db03366eed1f
Revision: 12639
Node Kind: directory
Schedule: normal
Last Changed Author: sergio
Last Changed Rev: 12370
Last Changed Date: 2013-04-03 18:06:58 -0300 (Wed, 03 Apr 2013)

volviendo a empezar me encuentro con el mismo error:

INSERT INTO mug_localidades (localidad, nombre, nombre_abreviado, dpto_partido, ddn)
VALUES (p_localidad, p_nombre, p_nombre_abreviado, p_dpto_partido, p_ddn);

– Falla el insert por primary key, existe la localidad, entonces actualizo los datos
EXCEPTION
WHEN unique_violation THEN
– Actualiza la localidad
UPDATE mug_localidades
SET (nombre, nombre_abreviado, dpto_partido, ddn) = (p_nombre, p_nombre_abreviado, p_dpto

… CORTADO POR EXCEDER EL LIMITE

Consulte los campos a ver si existe algun registro que exceda el tamaño, el campo nombre tiene entre 60 y 65 caracteres siendo el mas largo…
Tambien aumente el memory_limit del php.ini…

Pregunta…, si hago esto

sudo ./toba proyecto migrar_base -p guarani -i desarrollo

funciona ok

pero no seria: sudo ./toba proyecto migrar_base -p guarani -i negocio ??? ojo no anda… No se igualmente si es logico…

La opcion ‘migrar_base’ no existe

Consulta: Ustedes con la copia de la base de datos que pase pudieron solucionar el problema?

Gracias

Hola Emilio:

     Te comento que el mensaje "... CORTADO POR EXCEDER EL LIMITE",  no es un error. Cuando surge un error al migrar_base por ejemplo , sale por pantalla el error y a continuación todo el script que resta ejecutar, como el script es muy largo, existe un limite que hace que se corte lo que se muestra por pantalla y por eso el mensaje. En realidad el error no lo estas viendo por pantalla seguramente esta mucho mas arriba del INSERT ese. Lo que podés hacer para ver el error es enviar el resultado de la ejecución a un LOG de esta manera:

./toba proyecto migrar_base -i desarrollo -p guarani |tee salida.log

En salida.log te queda el resultado de esta ejecución, adicionalmente de verlo por pantalla, al principio de ese archivo vas a encontrar el verdadero error.

Con respecto a la siguiente consulta, el comando correcto es:


      sudo ./toba proyecto migrar_base -p guarani -i desarrollo

Fijate en el log que generaste a ver que error es. Cualquier cosa enviámelo

Saludos
Sergio

Sergio…
Adjunto archivo de log.

Veo que el error esta en MENSAJE]: ERROR: function public.digest(text, unknown) does not exist

Por otro lado en el archivo me trae que la version es 3.0.0
Pero con esta consulta select * from negocio.app_versiones_base veo que esta en la 3.1

2;“3.1.0”;0;“/usr/local/proyectos/toba/proyectos/guarani/BD/Diferenciales/000012.sql”;“2013-05-30 10:42:32.552612-03”;“12639”
3;“3.1.0”;0;“/usr/local/proyectos/toba/proyectos/guarani/BD/Diferenciales/000013.sql”;“2013-05-30 10:42:32.552612-03”;“12639”
1;“3.0.0 (5)”;0;“Creacion de la Base”;“2012-11-29 11:52:29.070639-03”;“11577”
4;“3.1.0”;0;“/usr/local/proyectos/toba/proyectos/guarani/BD/Diferenciales/00014i.sql”;“2013-05-30 10:42:32.552612-03”;“12639”

En la base de datos
Por otro lado te consulto…

Yo no se que mas pruebas realizar…, se te ocurre algo??? Yo no tengo problemas en realizar todo lo que sea necesario para solucionar el problema…

En este momento realmente estoy trabado y dependo en su totalidad de ustedes. Tengo todo el departamento de alumnos frenados junto a las operaciones de los mismos. Se esta armando un caos con el tema de las mesas de examenes…

Alguna sugerencia???
Esta la opcion de subir la maquina virtual a algun repositorio, si lo creen necesario…

Gracias!!!


salida.txt (8.98 KB)

Emilio:

        El error [b]function public.digest(text, unknown) does not exist[/b] surge porque no tenés instalada la libreria pg_crypto, esto está indicado en el instructivo de actualización a la versión 3.4.1  [url=http://repositorio.siu.edu.ar/trac/Portal-G3/wiki/NotasTecnicas/ActualEntornoDesa341#Aplicarfuncionesdeencriptaci%C3%B3npgcryptoaPostgreSQL]Aplicar funciones de encriptación (pgcrypto) a PostgreSQL[/url] 
Aplicar funciones de encriptación (pgcrypto) a PostgreSQL

Para realizar esto se debe ejecutar el siguiente comando:

toba proyecto aplicar_pgcrypto –i <id_instancia> -p guarani

Igualmente me podés hacer un resumen de lo que hicieron fuera del foro? si se encontraron con errores que pasaron por alto…, si empezaste de nuevo la actualización con un backup de la base desde el principio o estás usando la base a la cual se le aplicaron algunos cambios en el proceso de actualización anterior?

Saludos
Sergio

Sergio…, no olvide ningun paso del instructivo…, tenga la plena certeza…, ya que lo hice paso a paso marcando que fui haciendo.
Para verifiocar vuelvo a ejecutar toba proyecto aplicar_pgcrypto –i <id_instancia> -p guarani
y continuando vuelvo a tener el mismo error en
toba proyecto migrar_base -p guarani –i <id_instancia>

por otro lado esta instalado:

postgres@G3-P:/usr/local/proyectos/toba/bin$ sudo apt-get install php5-mcrypt
Reading package lists… Done
Building dependency tree
Reading state information… Done
php5-mcrypt is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 32 not upgraded.
postgres@G3-P:/usr/local/proyectos/toba/bin$

Emilio:

       Esa no es la librería que indico, la que me mostrás es una extensión de PHP, mientras que la que me refiero yo, es una libreria de PostgreSQL. En el schema public de la base de datos deberias tener 33 funciones que se crean cuando agregas esa libreria. Como se ve en el adjunto que te envio!, por el error que enviaste, esas funciones no están creadas, por lo tanto inferí que no se habia realizado el paso correspsndiente que te cité en el post anterior. Por Favor verificá que tengas esas funciones en el schema public de la base que estas apuntando desde la aplicación.

Saludos
Sergio


Selection_016.png

Selection_016.png

Sergio…, ahora si encontramos algo…, no tengo ninguna funcoin!!!

Te paso la pantalla por las dudas!!!, GRACIAS!!!, creo que nos estamos encaminando!!! :slight_smile:


Public.JPG

Public.JPG_thumb.png

Hola Emilio

Fijate si la podes agregar como extension

Emilio


nueva_extension.JPG

nueva_extension.JPG_thumb.png

Emilio no entiendo que me queres decir…

De que extencion me hablas???,
Lo agrego por la interfaz de PGAdmin???

Gracias!!!