Hola a todos!!
Estoy versionando en un servidor de TEST a una nueva versión de 4 dígitos de la version 3.15.1:
El comando migrar_base, me tira el siguiente error:
"guarani3-test:/usr/local/proyectos/guarani/3.15.1/bin# ./guarani migrar_base
Ejecutado: 23/10/18 11:31:56
ERROR ejecutando SQL:
[CODIGO]: 7
[SQLSTATE]: db_42P01
[MENSAJE]: ERROR: no existe la relaci�n �app_versiones_base�
LINE 2: FROM app_versiones_base
^
[SQL EJECUTADA]: SELECT trim(version_app) as version_actual
FROM app_versiones_base
ORDER BY id_conversion DESC
LIMIT 1"
los parámetros en el bases.ini son correctos.
En realidad no necesito correr este comando, pero no debería decirme:
“La versión de la base está actualizada a la versión del proyecto.”
?
Buenos días Ana, podrías por favor adjuntarnos el archivo que se encuentra en instalacion/logs_comandos/comandos.log cuando corres el comando que nos mencionas?
Tal como decís el mensaje sale de esa forma cuando estas en la versión que la base requiere.
José:
Te adjunto el log. Como te comenté, no necesito migrar base porque la versión de la base no cambió, pero me resulta raro que no parecezca el mensaje de que no es necesario actualizar la base.
Gracias.
Ana, te devolvió 3.15.1 no ?
Podrías por favor hacer lo siguiente y decirnos que te devuelve esto. Deberías editar el archivo php/extension_toba/guarani_modelo.php y modificar la funcion get_version_app_base por la que te paso a continuación:
function get_version_app_base()
{
$base = $this->get_base();
$base->set_schema($this->schema_modelo);
$sql = "SELECT trim(version_app) as version_actual FROM app_versiones_base ORDER BY id_conversion DESC LIMIT 1";
print_r($base); echo "SCHEMA ".$this->schema_modelo;
$datos = $base->consultar_fila($sql);
return $datos['version_actual'];
}
José:
No pude probar esto con la 3.15.1, pero ahora tengo el mismo problema migrando a la 3.16.0, donde si tengo que migrar.
Hice la modificación que me pedis y te mando la salida del comando ./guarani migrar ahora, a ver si me podes decir que está pasando.
Buenas Ana, este problema que estás teniendo es en tu máquina de desarrollo?Podrías por favor devolvernos el resultado de hacer svn status y adjuntarlo en una respuesta?Estuvimos probando en el momento que nos reportaste el error y no encontramos error alguno.En algún otro entorno de desarrollo les ha pasado lo mismo?
Podrías también adjuntarnos que es lo que tenes definido en el bases.ini, y una captura de pantalla de la solapa datos seleccionando la fuente guarani de las dos primeras solapas.
Saludos
José:
Este no es un entorno de desarrollo, en desarrollo no me dio error.
Es en un entorno de producción que es el que usamos para testear el versionado en este ambiente antes de hacerlo efectivo, por lo que me precupa más porque es una VM clonada de producción.
guarani3-test:/usr/local/proyectos/guarani/3.15.1.5# svn st
? metadatos_compilados
M php/extension_toba/guarani_modelo.php
M www/aplicacion.php
Y los datos de la conexion en el bases.ini son correctos.
José:
Ya sé cuál es el problema en la función get_version_app_base() en $this->schema_modelo es PUBLIC. Pero el bases.ini lo tengo correcto, no tengo toba_editor, pero lo puedo publicar y ver las solapas que me decis.
José:
La funcion get_version_app_base que está en co_parametros, que es la que usa contexto_ejecucion.php para decirme cuando ingreso a la url que "La versión del sistema es mayor que la de la BD. Por favor actualice la BD a la nueva versión. ", hace lo mismo que la que está en php/extension_toba/guarani_modelo.php y usa el migrar_base, y está funcionando.
Puede ser que el schema tenga que estar en otro lado que no es el bases.ini y me esta faltando?
Pensé que desarrollo no me dio error porque tengo en la base para el usuario: ALTER ROLE xxx SET search_path = negocio, public;
Pero no es eso. Busco de dónde la función toma el public.
José:
Ya lo solucioné. Tengo una entrada en el bases.ini [desarrollo guarani grado_2019], que no tenía en desarrollo y me está tomando como idbase ‘guarani’.
Consulta, tengo otras entradas para la preinscripción pero con otros nombres y no me están dando problema, qué es lo que puede estar pasando con esta?
Gracias.
Cada entrada del archivo bases.ini se compone así: [ ]. Se asume que la fuente de datos es la primera que encuentra en el archivo de inicialización ‘bases.ini’. Por eso si tenés la entrada “[desarrollo guarani grado_2019]” antes que “[desarrollo guarani guarani]” no va a funcionar como se espera.
La entrada [desarrollo guarani grado_2019] estaba al final del bases.ini, es más tengo otras entradas al final del archivo para preinscripcion y no pasa esto.
Por lo que veo no es el orden en el archivo ‘bases.ini’ lo que influye (como te dije anteriormente) sino el orden alfabético por identificador de la fuente. Como ‘grado_2019’ está antes que ‘guarani’ toma la incorrecta como fuente por defecto.
Florencia:
Si es como decis. Lo que vamos hacer es cambiar el nombre de la entrada a “pgrado_2019” en producción, así ya nos queda bien para cuando pasemos todo a producción