Existen diversos tipos de herramientas para realizar migraciones de bases de datos (Schema migration, database migration, database change management en inglés). Estas herramientas están diseñadas para administrar cambios incrementales y reversibles sobre esquemas de bases de datos relacionales.

Una migración sobre un esquema es realizada siempre que se necesite actualizar o revertir un cambio sobre un esquema de una base de datos relacional.

En este texto, mostraré las herramientas disponibles y de las más oídas para trabajar con migraciones para bases de datos.

Flyway

Herramienta desarrollada para interactuar con Java
Bases de datos soportadas:

  • Oracle
    SQL Server
    SQL Azure
    DB2
    MySQL
    MariaDB
    Google Cloud
    PostgreSQL
    Redshift
    Otras…

Herramientas de Java con las que interactua

  • Maven
    Gradle
    Ant

6 Comandos básicos

  • Migrate
    Clean
    Info
    Validate
    Baseline
    Repair

Liquibase

Herramienta desarrollada para interactuar con Java
Bases de datos soportadas

  • MySQL
    PostgreSQL
    Oracle
    SQL Server
    Sybase
    DB2
    Apache Derby
    Otras

Herramientas Java con las que interactua

  • Maven
    Ant

Muchos comandos dependiendo de lo que se quiera hacer

Datical DB

Sin interacción directa con Java
Bases de datos soportadas

  • Oracle
    DB2
    MySQL
    SQL Server
    PostgreSQL
    Otras

Muchos comandos dependiendo de lo que se quiera hacer. Similar a Liquibase.

Active Record (migrations)

Herramienta hecha con Ruby
Bases de datos soportadas

  • PostgreSQL
    MySQL

Comandos basados en definir cosas en Ruby

Ruckusing-migrations

Herramienta hecha en PHP
Bases de datos soportadas

  • PostgreSQL
    MySQL
    Sqlite

Varios comandos basados en lo que se quiera hacer.

Phinx

Herramienta hecha en PHP
Bases de datos soportadas

  • MySQL
    PostgreSQL
    SQLite
    SQL Server

Varios comandos basados en lo que se quiera hacer.

MyBatis Migrations

Framework de persistencia para Java.
Bases de datos soportadas

  • Cualquiera bajo JDBC

Configuración basada en SQL, Java y XML

Ragtime

Biblioteca para realizar migraciones de datos estructurados hecha en Clojure
Bases de datos soportadas

  • Cualquiera bajo JDBC

Configuración basada en SQL

Lobos

Biblioteca para realizar migraciones de bases de datos escrita en Clojure.
Bases de datos soportadas

  • H2
    MySQL
    PostgreSQL
    SQLite
    SQL Server

Configuración bajo clojure