Esta sección define el proceso de creación de scripts para soportar los desarrollos, ajustes, mejoras y solicitudes de cambios que impacten el modelo entidad relación de SICOF ERP.
Versión | Elabora | Revisa | Aprueba | Fecha Publicación | Observaciones |
---|---|---|---|---|---|
1.0 | carlos.torres, abdimar.estrada | daberson.henao | daberson.henao | 05/10/2020 | Versión Inicial |
Antes de describir el proceso es importante la compresión de los siguientes conceptos.
A continuación se describe el proceso de nombramiento de scripts
Asumiendo la siguiente Url genérica http://adacsc.co:1443/svn/repository/ADA/SICOF/ScriptsDB/SICOFERP/ se presentan los siguientes ejemplos:
Rama - Almacenamiento | Numeración Externa | Funcionalidad Propietaria. | Versión | Numeración Interna. | Evolución | Sentencia | Nombre | Reversión | Tipo |
---|---|---|---|---|---|---|---|---|---|
branches | 00000000 | FUNCIONALIDAD PROPIETARIA | V1.0 | 1001 | CREATE TABLE | ESQUEMA.MAE_PRUEBAS | |||
branches | 00000000 | FUNCIONALIDAD PROPIETARIA | V1.0 | 1001 | CREATE TABLE | ESQUEMA.MAE_PRUEBAS | REVERT | ||
branches | 00000000 | FUNCIONALIDAD PROPIETARIA | V1.0 | 1001 | a | ALTER TABLE | ESQUEMA.MAE_PRUEBAS | ||
branches | 00000000 | FUNCIONALIDAD PROPIETARIA | V1.0 | 1002 | CREATE OR REPLACE FORCE VIEW | ESQUEMA.V_PRUEBAS | |||
branches | 00000000 | FUNCIONALIDAD PROPIETARIA | V1.0 | 1003 | a | CREATE OR REPLACE PACKAGE | ESQUEMA.PCK_PRUEBAS | SPEC | |
branches | 00000000 | FUNCIONALIDAD PROPIETARIA | V1.0 | 1003 | b | CREATE OR REPLACE PACKAGE | ESQUEMA.PCK_PRUEBAS | BODY |
A lo largo de la sección se definirá cada fragmento del nombramiento de scripts
Según el Flujo de Registro los scripts deben almacenarse según la siguiente sección Repositorio SVN
Toda Funcionalidad Propietaria debe estar versiona empezando con V1.0. A Continuación se definen los siguientes lineamientos:
Se deben utilizar las extensiones registradas en la sección Estandares y Prefijos PL/SQL Extensiones de archivos
Cada script debe agruparse de acuerdo a la Funcionalidad Propietaria y estar contenido en el directorio raíz de la funcionalidad.
Cada directorio que represente una Funcionalidad Propietaria debe iniciar con una numeración de 8 dígitos, ser secuencial e iniciar a partir de 10000000.
Ejemplo:
00000000 FUNCIONALIDAD PROPIETARIA
La numeración [00000000 - 09999999] está reservada para scripts de procesos internos y no debe ser utilizada para registrar scripts de lógica del negocio.
Cada directorio que represente una Funcionalidad Propietaria deberá contener scripts de evolución de la funcionalidad, estos también deben estar numerados con 4 dígitos de forma secuencial y deben iniciar a partir de 1000.
Ejemplo:
1001 CREATE TABLE ESQUEMA.MAE_PRUEBAS.sql
La numeración [0000 - 0999] está reservada para scripts de procesos internos y no debe ser utilizada para registrar scripts de lógica del negocio.
Los scripts deben ser generados por objetos, no se deben agrupar.
Cada script debe registrar en su nombre la sentencia general que describirá y debe estar en mayúsculas.
Ejemplo:
1001 CREATE TABLE ESQUEMA.MAE_PRUEBAS.sql 1002 CREATE OR REPLACE FORCE VIEW ESQUEMA.V_PRUEBAS.sql
Según el tipo de objeto se pueden presentar los siguientes tipos de evoluciones de scripts:
Este tipo de cambios modifican el script inicial. No es necesario crear un nuevo script ya que el control de versiones permitirá la gestión de cambios. Aplica para los siguientes tipos de objetos:
Ejemplo:
1002 CREATE OR REPLACE FORCE VIEW ESQUEMA.V_PRUEBAS.sql
Nota Todos los objetos que en su definición tengan especificación y cuerpo deben registrarse en archivos separados de la siguiente manera:
Ejemplo:
1003a CREATE OR REPLACE PACKAGE ESQUEMA.PCK_PRUEBAS SPEC.sql 1003b CREATE OR REPLACE PACKAGE ESQUEMA.PCK_PRUEBAS BODY.sql
Este tipo de cambios se anexan al script inicial por medio de otro script. No es posible modificar el archivo inicial porque los objetos no permiten la instrucción CREATE OR REPLACE. Aplica para los objetos:
Los scripts de evolución por estado deben ser nombrados por el mismo nombre del script original pero la numeración debe estar acompañada de letras en minúsculas (al final de la numeración) de la [a-z] en caso de alcanzar el limite se procederá con las combinaciones [aa-az] y así sucesivamente.
Ejemplos:
1002 CREATE TABLE PRESUP01.MAE_PRUEBAS.sql 1002a ALTER TABLE PRESUP01.MAE_PRUEBAS.sql 1002b ALTER TABLE PRESUP01.MAE_PRUEBAS.sql 1002c ALTER TABLE PRESUP01.MAE_PRUEBAS.sql
Cada Funcionalidad Propietaria contiene un directorio llamado Revert el cual almacenará los scripts de reversión. A continuación se dictan los lineamientos para crearlos:
Ejemplos:
Script de Actualización: 1001 CREATE TABLE ESQUEMA.MAE_PRUEBAS.sql Script de Reversión: 1001 CREATE TABLE ESQUEMA.MAE_PRUEBAS REVERT.sql
En algunas situaciones algunos procesos tienen particularidades entre clientes. En estas situaciones la Funcionalidad Propietaria tendrá en sus versiones el código estándar que aplica a todos los clientes y la particularidades deben registrarse en un directorio interno con las siguientes condiciones:
Este archivo es muy importante para la gestión de script ya que en el se deben registrar las actualizaciones que se realizan en las Funcionalidades Propietarias para comprender el archivo se explicará por medio de una plantilla y finalmente se mostrará un archivo diligenciado según los ejemplos utilizados a lo largo de la sección:
########################################################################################### # ARCHIVO DE IMPLEMENTACION - FUNCIONALIDAD PROPIETARIA - EJ: 00000000 FUNCIONALIDAD PROPIETARIA ########################################################################################### # Versión: Número de la Versión liberada. EJ: 1.0 # Fecha: Fecha de liberación de la Funcionalidad Propietaria, por lo generar tiene la fecha del primer scritp registrado. EJ:06/10/2020 # Desarrollador: Desarrollador que publica la funcionalidad propietaria. EJ:carlos.torres@ada.co # Módulos: Módulos de la funcionalidad propietaria. EJ:Presupuesto 12.5.2.5.0 ########################################################################################### # A continuación se describe el proceso de implementación de los scripts requeridos para # la actualización del proceso. Favor tener presente el orden descrito en este # archivo ya que de no seguir el orden pueden generarse errores de compilación por # referencias invalidas. ########################################################################################### # PASOS DE EJECUCION DE SCRIPTS DB ########################################################################################### # Alcance: # Indica el alcance de la funcionalidad propietaria. EJ: Aplica para todos los clientes. ########################################################################################### # Ejecutar Script: En esta sección se registran de forma secuencial a lista de script # que deben ser ejecutados para soportar la solución implementada. # Ejemplo: # 1. 1001 CREATE TABLE ESQUEMA.MAE_PRUEBAS.sql # 2. 1002 CREATE OR REPLACE FORCE VIEW ESQUEMA.V_PRUEBAS.sql # 3. 1003a CREATE OR REPLACE PACKAGE ESQUEMA.PCK_PRUEBAS SPEC.sql # 4. 1003b CREATE OR REPLACE PACKAGE ESQUEMA.PCK_PRUEBAS BODY.sql ########################################################################################### # OBSERVACIONES #------------------------------------------------------------------------------------------ # Aquí se deben registrar observaciones sobre la ejecución de los scripts. # EJ: Alguna consideración externa a la ejecución del script, roles, permisos, etc. # Se debe registrar la revisión inicial # EJ: Revision History: 1.0 - carlos.torres@ada.co - 06/10/2020 07:58:34 : Liberación de versión ########################################################################################### # * Validar objetos inválidos al terminar la actualización. # * Ejecutar actualización con un usuario que tenga permisos con el usuario ESQUEMA ########################################################################################### # HISTORIAL DE ACTUALIZACIONES # En esta sección se registran las evoluciones de script ########################################################################################### # Se debe registrar la revisión de la actualización # EJ: Revision History: 1.1 - carlos.torres@ada.co - 07/10/2020 08:58:34 : Adición de columnas #------------------------------------------------------------------------------------------ # Ejecutar Script: En esta sección se registran de forma secuencial a lista de script # que deben ser ejecutados para soportar la solución implementada. # Ejemplo: # 1. 1001a ALTER TABLE ESQUEMAMAE_PRUEBAS.sql # OBSERVACIONES #------------------------------------------------------------------------------------------ # Aquí se deben registrar observaciones sobre la ejecución de los scripts. # * Ejecutar los scripts en el orden propuesto # * Validar objetos inválidos al terminar la actualización. # * Ejecutar actualización con un usuario que tenga permisos con el usuario ESQUEMA
########################################################################################### # ARCHIVO DE IMPLEMENTACION - 00000000 FUNCIONALIDAD PROPIETARIA ########################################################################################### # Versión: 1.0 # Fecha: 06/10/2020 # Desarrollador: carlos.torres@ada.co # Módulos: Presupuesto 12.5.2.5.0 ########################################################################################### # A continuación se describe el proceso de implementación de los scripts requeridos para # la actualización del proceso. Favor tener presente el orden descrito en este # archivo ya que de no seguir el orden pueden generarse errores de compilación por # referencias invalidas. ########################################################################################### # PASOS DE EJECUCION DE SCRIPTS DB ########################################################################################### # Alcance: # Aplica para todos los clientes. ########################################################################################### # Ejecutar Script: # 1. 1001 CREATE TABLE ESQUEMA.MAE_PRUEBAS.sql # 2. 1002 CREATE OR REPLACE FORCE VIEW ESQUEMA.V_PRUEBAS.sql # 3. 1003a CREATE OR REPLACE PACKAGE ESQUEMA.PCK_PRUEBAS SPEC.sql # 4. 1003b CREATE OR REPLACE PACKAGE ESQUEMA.PCK_PRUEBAS BODY.sql ########################################################################################### # OBSERVACIONES #------------------------------------------------------------------------------------------ # Revision History: 1.0 - carlos.torres@ada.co - 06/10/2020 07:58:34 : Liberación de versión ########################################################################################### # * Validar objetos inválidos al terminar la actualización. # * Ejecutar actualización con un usuario que tenga permisos con el usuario ESQUEMA ########################################################################################### # HISTORIAL DE ACTUALIZACIONES # En esta sección se registran las evoluciones de script ########################################################################################### # Revision History: 1.1 - carlos.torres@ada.co - 07/10/2020 08:58:34 : Adición de columnas #------------------------------------------------------------------------------------------ # Ejecutar Script: # 1. 1001a ALTER TABLE ESQUEMAMAE_PRUEBAS.sql # OBSERVACIONES #------------------------------------------------------------------------------------------ # Aquí se deben registrar observaciones sobre la ejecución de los scripts. # * Ejecutar los scripts en el orden propuesto # * Validar objetos inválidos al terminar la actualización. # * Ejecutar actualización con un usuario que tenga permisos con el usuario ESQUEMA