Diferencia entre revisiones de «Categoría:DEV REGISTRO»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Etiqueta: Revertido
Etiqueta: Reversión manual
 
Línea 14: Línea 14:
*La tabla [[DEV REGISTRO/DEF DETALLES|Refresco, detalles que gatillan refresco (prxdevlog_detalles)]] define los detalles de las clases antes definidas que gatillan el guardado de los cambios.
*La tabla [[DEV REGISTRO/DEF DETALLES|Refresco, detalles que gatillan refresco (prxdevlog_detalles)]] define los detalles de las clases antes definidas que gatillan el guardado de los cambios.
*La tabla [[DEV REGISTRO/DEF CAMPOS DETALLES|Refresco, campos de detalles (prxdevlog_detalles_campos)]] define los campos de los detalles que gatillan el guardado de las modificaciones.
*La tabla [[DEV REGISTRO/DEF CAMPOS DETALLES|Refresco, campos de detalles (prxdevlog_detalles_campos)]] define los campos de los detalles que gatillan el guardado de las modificaciones.
<br>
 
<div style="border: 1px solid red; background-color: #ffcccc; padding: 1px;">
<div style="border: 1px solid red; background-color: #ffcccc; padding: 1px;">
<strong>  Advertencia:</strong><br>
<strong>  Advertencia:</strong><br>

Revisión actual - 22:05 28 mar 2025

Introducción

Diagrama de registro del catálogo.

Cada vez que se hace una modificación en algún objeto del catálogo (clases, consultas,vistas, etc.) se guarda en este registro que permite eventualmente aplicar esos mismos cambios a otra base de datos. Para que eso ocurra primero hay que definir qué objetos participan de este registro de modificaciones, posteriormente el sistema guarda los cambios hechos sobre esos objetos y finalmente el proceso de refresco hará los cambios necesarios para que cada base de datos tenga los últimos cambios aplicados.

Estas opciones se usan cuando hay que mantener varias bases de datos y necesitamos que todas tengan la misma estructura.

Los cambios aplicados sobre una base de datos se pueden exportar, y posteriormente importar en otras bases de datos.

Tablas relacionadas con la definición del registro

Para definir qué objetos del sistema deben guardar sus cambios en el registro se usan las siguientes tablas:

Advertencia:

 - Lo descripto en este título está en revisión y probablemente se modifique o reemplace por completo en futuras versiones ya que muchas de estas definiciones se hicieron persiguiendo una parametrización avanzada del registro, pero la realidad es que muy poco de esto se usa y funcionaría con una definición mucho más sencilla.

Tablas relacionadas con el contenido del registro

Estas tablas guardan el registro de cambios en el sistema:

Tablas relacionadas con el proceso de refresco del registro

Estas tablas se relacionan con el proceso de refresco:

Procedimientos relacionados con los catálogos

Habitualmente los cambios se aplican primero en la base de datos llamada pCatalogo, para que esos cambios impacten en otras bases de datos hay que ejecutar dos procedimientos:

  • Exportar el catálogo para guardar los últimos cambios en una carpeta del disco.
  • Importar el catálogo para importar esos cambios en otras bases de datos.

La exportación y posterior importación se hacen usando una carpeta del disco, y cada transacción se guarda en un archivo txt propio.

Estos procedimientos se explican a continuación.

Para exportar el catálogo hay que elegir la opción desde el menú principal:

Exportar catálogo.

Una vez que lo hayamos hecho veremos una pantalla similar a:

Exportar el catálogo.

Debemos indicar:

  • En qué carpeta queremos guardar las transacciones.
  • La pantalla nos indicará el último identificador de transacción encontrado en esa carpeta.
  • Luego debemos indicar desde qué día (desde hoy hacia atrás) queremos exportar, solo se muestran las fechas que contienen transacciones.
  • Finalmente cuando presionamos Exportar el sistema guardará cada transacción en un archivo en esa carpeta.

Para importar el catálogo hay que elegir la opción desde el menú principal:

Importar catálogo.

Una vez seleccionada la opción veremos una pantalla:

Importar catálogo.

Debemos indicar:

  • Desde qué carpeta queremos importar las transacciones.
  • El sistema verificará qué transacciones hay en esa carpeta que aún no han sido importadas al sistema, al terminar la evaluación mostrará la cantidad de transacciones pendientes de importar a la derecha del texto del botón Importar.
  • Cuando presionemos Importar el sistema cargará las transacciones que aún no han sido importadas, al sistema. Al terminar la importación mostrará la cantidad de transacciones pendientes de aplicar a la derecha del texto del botón de Aplicar.
  • Cuando presionemos Aplicar el sistema aplicará las transacciones pendientes.

Formato de un archivo de transacción

Cada archivo tiene un nombre similar a [TIMESTAMP_20250328144716679.192.168.001.152][CATALOG_Pragma_Sys_Objects].txt donde:

  • TIMESTAMP indica el TIMESTAMP del momento de registro de la transacción original.
  • CATALOGO indica a qué catálogo pertenece el objeto modificado.

El contenido se guarda con tags, por ejemplo:

<TIMESTAMP_>
20250328144716679.192.168.001.152
</TIMESTAMP_>
<CATALOG_>
Pragma_Sys_Objects
</CATALOG_>
<msg_devlog_type>
prxclases
</msg_devlog_type>
<msg_devlog_id>
pAUX_RUNTIME_TABLA
</msg_devlog_id>
<msg_devlog_subid>

</msg_devlog_subid>
<msg_devlog_operation>
log
</msg_devlog_operation>
<msg_content>
UPDATE prxcampos SET Indicaciones = 'Tipo de objeto al que aplica el auxiliar, PRXCLASES o PRXCAMPOS.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FOBJETO'
UPDATE prxcampos SET Indicaciones = 'C_ascii243_digo de clase sobre el que aplica el auxiliar.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FCLASE'
UPDATE prxcampos SET Indicaciones = 'C_ascii243_digo de campo sobre el que aplica el auxiliar, solo cuando el tipo es PRXCAMPOS. Sino remite el mismo c_ascii243_digo que FCLASE.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FCAMPO'
UPDATE prxcampos SET Indicaciones = 'Tipo de auxiliar.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FTIPO'
UPDATE prxcampos SET Indicaciones = 'C_ascii243_digo de auxiliar, solo cuando el auxiliar permite m_ascii250_ltiples definiciones para la misma clase o campo.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FCODIGO'
UPDATE prxcampos SET Indicaciones = 'N_ascii250_mero de l_ascii237_nea del comando.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FLINEA'
UPDATE prxcampos SET Indicaciones = 'Ancestro de la clase que define el campo sobre el que aplica el auxiliar.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FANCESTRO'
UPDATE prxcampos SET Indicaciones = 'Descripci_ascii243_n dada al auxiliar.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FDESCRIPCION'
UPDATE prxcampos SET Indicaciones = 'Comando.' WHERE Clase = 'pAUX_RUNTIME_TABLA' AND Campo = 'FCOMANDO'
GO
</msg_content>

Las etiquetas usadas son:

  • <TIMESTAMP_> indica el TIMESTAMP del momento de registro de la transacción original, cierra con </TIMESTAMP_>.
  • <CATALOG_> indica a qué catálogo pertenece el objeto modificado, cierra con </CATALOG_>.
  • <msg_devlog_type> indica a qué tipo de objeto del catálogo pertenece, en este caso a las [[[DEV CLASES]]], cierra con </msg_devlog_type>.
  • <msg_devlog_id> indica el código de objeto modificado, cierra con </msg_devlog_id>.
  • <msg_devlog_subid> indica el subcodigo del objeto modificado, por ejemplo, si modificamos un trigger en este campo se informará el código del trigger y en el anterior la clase que define ese trigger, cierra con </msg_devlog_subid>.
  • <msg_devlog_operation> indica el tipo de operación a aplicar (log, insert, update, delete), cierra con </msg_devlog_operation>.
  • <msg_content> contiene los comandos a aplicar, cierra con </msg_content>.

Páginas en la categoría «DEV REGISTRO»

Las siguientes 8 páginas pertenecen a esta categoría, de un total de 8.