Skip to content
Snippets Groups Projects
Commit c52633b8 authored by Esteban Sassone's avatar Esteban Sassone
Browse files

Refs #1335 - Control de versión de codigo y versión DB

parent f895c48b
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@
namespace SIU\SQ\Lib\procesos;
use SIU\SQ\Lib\errores\error;
use SIU\SQ\Lib\entorno\configurador;
/**
* Description of proceso_db
*
......@@ -21,6 +22,8 @@ class proceso_db_iniciar extends proceso_db
$this->agregar_datos_basicos();
// Actualizando secuencias
$this->actualizar_secuencias();
// Inicializar el versionador
$this->inicializar_versionador();
$this->finalizar();
}
......@@ -34,7 +37,7 @@ class proceso_db_iniciar extends proceso_db
// if( $this->existe_base_datos($def) !== true ) {
// $this->crear_base_datos( $def );
// } else {
// throw new toba_error( "La base '$def' ya está creada en el MOTOR");
// throw new toba_error( "La base '$def' ya est� creada en el MOTOR");
// }
//$sql = "CREATE DATABASE sq_uv ";
}
......@@ -145,4 +148,37 @@ class proceso_db_iniciar extends proceso_db
throw $e;
}
}
function inicializar_versionador()
{
try {
if($this->imprime_salida) echo "\n - Inicializando versionador ";
// Obtener version actual
$config = new configurador();
$dir = $config->get_config_dir();
$proyecto = parse_ini_file($dir . "/../toba/proyecto.ini", TRUE);
// Obtener la consola de TOBA
$dir = $_SERVER['TOBA_DIR']."/php";
$separador = (substr(PHP_OS, 0, 3) == 'WIN') ? ';.;' : ':.:';
ini_set('include_path', ini_get('include_path'). $separador . $dir);
$directorio_comandos = $dir . "/consola/comandos";
require_once('consola/consola.php');
$consola = new \consola( $directorio_comandos, "menu_toba");
// Ejecutar la inicializacion del versionador
$inicializar_versionador = array(
"proyecto",
"inicializar_versionador",
"-p", "sq_uv",
"-e",
"-v", $proyecto['proyecto']['version'],
);
$consola->run($inicializar_versionador);
if(!empty($datos_basicos)) {
$this->entorno()->log()->info("Proceso DB: Versionador inicializado OK");
}
} catch (error $e) {
$this->entorno()->log()->err("Proceso DB ERROR: " . $e->getMessage());
throw $e;
}
}
}
......@@ -33,6 +33,7 @@ class proceso_validar_instalacion extends proceso
$this->validaciones_php();
$this->validaciones_postgres();
$this->validaciones_version();
$this->validaciones_integracion();
if(!empty($this->error)){
......@@ -77,6 +78,24 @@ class proceso_validar_instalacion extends proceso
$this->error[] = "La variable LC_CTYPE del motor postgres es: " . $ctype[0]['lc_ctype'] . " y debería ser es_AR.UTF8.";
}
}
function validaciones_version()
{
// Obtener la version del codigo
$config = new configurador();
$dir = $config->get_config_dir();
$version_codigo = parse_ini_file($dir . "/../toba/proyecto.ini", TRUE)['proyecto']['version'];
// Obtener version de la base de datos
$existe_esquema_versionado = $this->entorno()->db()->consultar("SELECT table_name FROM information_schema.tables WHERE table_name='xlib_versionador_comandos';");
if(!empty($existe_esquema_versionado)) {
$version_db = $this->entorno()->db()->consultar("SELECT denominacion_version FROM xlib_versionador_comandos WHERE denominacion_version = '" . $version_codigo . "';");
if (empty($version_db)) {
$this->error[] = "La version del codigo (" . $version_codigo . ") no se corresponde con ninguna encontrada en la base de datos." . PHP_EOL . "Por favor ejecute el comando: toba proyecto inicializar_versionador -p sq_uv -e -v " . $version_codigo;
}
}else{
$this->error[] = "No se encuentra iniciado el esquema de versionado." . PHP_EOL . "Por favor ejecute el comando: toba proyecto inicializar_versionador -p sq_uv -v" . $version_codigo;
}
}
function validaciones_integracion()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment