DEV Community

Edgar Rios Navarro
Edgar Rios Navarro

Posted on

1 1

Control Version de una base de datos Oracle

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 
Enter fullscreen mode Exit fullscreen mode

1.- Todos los scripts los almacenamos en una carpeta específica:
Image description

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>
Enter fullscreen mode Exit fullscreen mode

3.- Ejecutamos la actualización:
Image description

4.- Verificamos la ejecución histórica:
Image description


Documentación

https://docs.oracle.com/en/database/oracle/sql-developer-command-line/22.2/sqcug/using-liquibase.html

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay