Estoy teniendo problemas para crear un nuevo proyecto en una instalacion de toba 3.0.26.
Estoy utilizando PHP 7.2.9.
El primer error surge al correr el comando "toba proyecto crear -d path -i desarrollo.
DBA: La BASE [desarrollo bienestardoc bienestardoc] no esta definida en el
archivo de definicion de BASES: ‘C:\Proyectos_toba\bien_doc\instalacion/bases.ini’
Al definir la base de datos en bases.ini y volver a ejecutar el comando aparece lo siguiente:
Creando el proyecto ‘bienestardoc’ en la instancia ‘desarrollo’…OK
PHP Fatal error: Uncaught Error: Class ‘toba_editor_datos_relacion’ not found in C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php:77
Stack trace: #0 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php(23): toba_constructor::get_runtime_objeto(Array, ‘toba_datos_rela…’, ‘toba_editor_dat…’, Array) #1 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\modelo\info\componentes\toba_item_info.php(571): toba_constructor::get_runtime(Array) #2 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\modelo\toba_modelo_proyecto.php(2491): toba_item_info->clonar(Array, ‘login’) #3 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comandos\comando_proyecto.php(281): toba_modelo_proyecto->actualizar_login() #4 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comandos\comando_proyecto.php(89): comando_proyecto->opcion__crear(NULL) #5 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comando.p in C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php on line 77
Fatal error: Uncaught Error: Class ‘toba_editor_datos_relacion’ not found in C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php:77
Stack trace: #0 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php(23): toba_constructor::get_runtime_objeto(Array, ‘toba_datos_rela…’, ‘toba_editor_dat…’, Array) #1 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\modelo\info\componentes\toba_item_info.php(571): toba_constructor::get_runtime(Array) #2 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\modelo\toba_modelo_proyecto.php(2491): toba_item_info->clonar(Array, ‘login’) #3 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comandos\comando_proyecto.php(281): toba_modelo_proyecto->actualizar_login() #4 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comandos\comando_proyecto.php(89): comando_proyecto->opcion__crear(NULL) #5 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comando.p in C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php on line 77
No tengo ni idea de cuales son esas clases que supuestamente faltan del nucleo, y no toqué nada ahi jaja. Supongo que estaré equivocandome en algun paso de la instalación pero no me doy cuenta de cual.
te hago una consulta, tenes a mano los archivos de logs que estan en la carpeta instalacion?.. como para ver en mas detalle que puede estar pasando.
Por otro lado, hay alguna razon particular para estar usando 3.0.26?.. esa rama llego hasta 3.0.32 y hasta preferiria que usaran la rama 3.1 si se trata de un desarrollo nuevo.
Tengo el archivo “comandos.log” dentro de la carpeta logs_comandos. Como te lo paso? Tiene demasiado texto y si lo pego aca el mensaje excede a la longitud maxima permitida.
Respecto a la versión, creiamos que era la ultima version de esa rama. Puedo reinstalar y probar con 3.1 .
Acabo de reinstalar todo usando toba 3.1 y al crear el proyecto llego al mismo problema
C:\Proyectos_toba\bien_doc>toba proyecto crear -d C:\Proyectos_toba\bien_doc -i desarrollo
Creando el proyecto ‘bienestardoc’ en la instancia ‘desarrollo’…OK
PHP Fatal error: Uncaught Error: Class ‘toba_editor_datos_relacion’ not found in C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php:77
Stack trace: #0 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php(23): toba_constructor::get_runtime_objeto(Array, ‘toba_datos_rela…’, ‘toba_editor_dat…’, Array) #1 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\modelo\info\componentes\toba_item_info.php(571): toba_constructor::get_runtime(Array) #2 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\modelo\toba_modelo_proyecto.php(2495): toba_item_info->clonar(Array, ‘login’) #3 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comandos\comando_proyecto.php(281): toba_modelo_proyecto->actualizar_login() #4 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comandos\comando_proyecto.php(89): comando_proyecto->opcion__crear(NULL) #5 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comando.p in C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php on line 77
Fatal error: Uncaught Error: Class ‘toba_editor_datos_relacion’ not found in C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php:77
Stack trace: #0 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php(23): toba_constructor::get_runtime_objeto(Array, ‘toba_datos_rela…’, ‘toba_editor_dat…’, Array) #1 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\modelo\info\componentes\toba_item_info.php(571): toba_constructor::get_runtime(Array) #2 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\modelo\toba_modelo_proyecto.php(2495): toba_item_info->clonar(Array, ‘login’) #3 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comandos\comando_proyecto.php(281): toba_modelo_proyecto->actualizar_login() #4 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comandos\comando_proyecto.php(89): comando_proyecto->opcion__crear(NULL) #5 C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\consola\comando.p in C:\Proyectos_toba\bien_doc\vendor\siu-toba\framework\php\nucleo\componentes\toba_constructor.php on line 77
perfecto, podes adjuntarlo aca en el foro como attachment del hilo… lo unico (por si usas un server aparte) blanqueale la clave del motor de bd y/o IP (si no es interna).
Respecto a la versión, creiamos que era la ultima version de esa rama. Puedo reinstalar y probar con 3.1 .
Si no hay requerimiento alguno para la version de Toba.. anda derecho viejo con la rama 3.2 (que es la ultima con soporte), de parte de PHP tiene los mismos requerimientos que 3.1.x asi que igual vas a estar sobrado.
Sin embargo ya tenia algunos fixes para 7.2 y libs mas actualizadas.
Respecto del error, pasame el archivo y veo si es algo sencillo o mas puntual de la instalacion… es una situacion extraña como minimo.
Hola Richard, ahi te adjunto el log y el archivo “toba_constructor” que es al que hace referencia el error. (Les cambie la extension para poder subirlos)
Si necesitas otra cosa avisame!.
Voy a probar con toba 7.2 ahora, te aviso apenas vea eso.
Muchas gracias!!
te hago una consulta, tenes seteada la variable de entorno TOBA_PROYECTO al iniciar la instalacion del framework?.. te consulto porque pareciera que estuvieras laburando con un entorno pre-cargado ya.
Por otro lado, al intentar crear el item de login (el cual se crea clonando un item de toba_editor) justamente pareciera que intenta clonar del proyecto equivocado asi mismo, ya que el msg esta disparado desde bienestardoc.
Es una teoria nomas… pero me parece que esto genera que se recorra un camino maledeto que termina en un posible bug como conjuncion de dos cosas.
Te voy a pedir que pruebes lo siguiente:
Si podes hacerte una instalacion completamente aparte, con una consola totalmente esteril… sin una pizca de variables de entorno (te das cuenta xq lo msg de log arrancan con [DEBUG][toba]).
En caso que falle igualmente, revisa el siguiente metodo y pegale este codigo dentro:
function get_nombre_clase_extendida($nombre, $proyecto, $extensiones)
{
$res = substr($nombre, strlen('toba_'));
if ($extensiones['extension_proyecto'] === true) {
return $proyecto.'_pers_'.$res;
} else if ($extensiones['extension_toba'] === true) {
return $proyecto.'_'.$res;
}
return $nombre;
}
A ver si se corrige el problema al intentar crear el proyecto.
El tema (si no calculo mal) viene por lo siguiente:
Por algun motivo postgres no esta tomando los DEFAULTS para dos columnas booleanas de la tabla apex_proyecto y completa con null los valores
La variable seteada en el entorno, hace que se devuelvan los datos de dicha fila en el singleton en lugar de tomar los de toba_editor
Lo que termina desencadenando en que se forme un nombre de clase inexistente en el metodo correspondiente porque [inserte aqui img de G. Tsoukalos con la leyenda PHP].
Como no puedo evitar que el framework pase a modo “orejeras” con la presencia de dicha variable, la unica que queda es atajarlo en el condicional con la expresion correcta (maldito C-style).
Probablemente termine subiendo igualmente ese fix… pero quiero comprobar que viene por ahi el tema.
Si efectivamente estoy corriendo un archivo bat con los siguientes parametros:
set TOBA_INSTANCIA=desarrollo
set TOBA_PROYECTO=bienestardoc
set TOBA_DIR=%~dp0vendor\siu-toba\framework
set TOBA_INSTALACION_DIR=%~dp0instalacion
set PATH=%TOBA_DIR%\bin;%PATH%
echo “Entorno cargado.”
echo “Ejecute ‘toba’ para ver la lista de comandos disponibles.”
Esas variables las estaba definiendo antes de crear la instalacion de Toba.
Para probar la instalacion que me acabas de sugerir no deberia ejecutarlo entonces?
Saludos!!
No me quedó bien en claro si deberia usar el entorno_toba para setear las variables o no
No, no deberias usarlo... a partir de la version 3.0 Toba levanta internamente el archivo llamado [b]entorno_toba.env[/b] que se encuentra en la raiz del proyecto (con las variables necesarias), asi que no necesitas ningun .bat.
Respecto del post anterior, si le ponias un REM a dicho bat en el seteo de la variable TOBA_PROYECTO alcanzaba para probar.
Ok, entonces el problema viene por otro lado quizas ya que dicho arreglo trae la componente con el valor indicado en el condicional.
Podrias pasarme el resultado de la siguiente SQL?
SELECT proyecto,
extension_toba,
extension_proyecto
FROM apex_proyecto;
Probablemente tengas que anteponer el nombre del schema en tu BD.
Igualmente voy a subir el cambio a esos condicionales… no tiene sentido que no este asi.
Richard
Reinstalé toba 3.2 sin utilizar las variables del archivo bat y no tuve ningun problema para crear el proyecto, parece que era eso lo que estaba haciendo mal.
Igualmente te deje adjunto el resultado de la consulta que pediste, antes de instalar el proyecto y luego de instalarlo.
Si encuentro algun tipo de problema te aviso!
Ahh en el post anterior pense que habias ido por ahi e igual te habia dado error, bueno entonces se confirma la parte del modo “orejeras” maldito.
Igualmente te deje adjunto el resultado de la consulta que pediste, antes de instalar el proyecto y luego de instalarlo.
Gracias por la data, ya que tenia razon en lo de la variable pero no en lo de postgres ignorando los defaults (que hubiera sido raro... pero una posibilidad), ahora tengo que ver por que mis instalaciones no tienen los defaults XD. De todas maneras, esto explica tambien porque seguia pasando por el condicional.. lo que esta mal es la fila que devuelve debido a la presencia de la variable de entorno.