Podemos mencionar dos proyectos que nos ayudarán con el control de versiones de nuestra base de datos: Flyway y Liquibase.
Dada la integración de SQLcl y Liquibase, este ejemplo nos da una solución para podemos emplear entre distintos equipos.
La primera recomendación es usar GIT. Tener un repositorio único, permite el seguimiento de cada cambio en la base de datos.
Como segunda recomendación, tener scripts tan atómicos como sea posible. Ello nos da la agilidad de remover o reemplazar los cambios.
Finalmente, usen un formato estandarizado para nombrar los archivos:
{YYYYMMDD}_{TEAM}_{SSS}_{DESC}.sql
1.- Todos los scripts los almacenamos en una carpeta específica:
2.- Usar un archivo controller.xml el cual hace referencia a los scripts, abstraemos a los programadores de darles formato.
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:n0="http://www.oracle.com/xml/ns/dbchangelog-ext"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd">
<changeSet id="20220623_TRED_001_VM1" author="erios" labels="q3s1">
<n0:runOracleScript objectName="20220623_TRED_001_VM1" ownerName="PTOVENTA" sourceType="FILE">
<n0:source><![CDATA[20220623_TRED_001_VM1.sql]]></n0:source>
</n0:runOracleScript>
</changeSet>
<changeSet id="20220623_TRED_002_VM2" author="erios" labels="q3s1">
<n0:runOracleScript objectName="20220623_TRED_002_VM2" ownerName="PTOVENTA" sourceType="FILE">
<n0:source><![CDATA[20220623_TRED_002_VM2.sql]]></n0:source>
</n0:runOracleScript>
</changeSet>
3.- Ejecutamos la actualización:
4.- Verificamos la ejecución histórica:
Top comments (0)