SQL mIGRATION tOOL desarrollada por 2am.tech

Automatizaciones de Bases de Datos Sin el Caos

La Herramienta de Migración SQL (SMT) desarrollada por 2am.tech es una aplicación de escritorio multiplataforma y una utilidad de línea de comandos (CLI) diseñada para aportar estructura, repetibilidad y auditabilidad a la forma en que los equipos gestionan los cambios en el esquema de la base de datos. Sin dependencia de ORM; solo SQL puro, con control de versiones y desplegado a tu manera.

By
This is some text inside of a div block.
This is some text inside of a div block.
6 min read
Las migraciones de bases de datos son de esas cosas que funcionan bien hasta que dejan de hacerlo. Un script de reversión omitido, un cambio de esquema aplicado a producción pero no a staging, credenciales codificadas directamente en un archivo de configuración que alguien subió por accidente... Este tipo de incidentes son los que quitan el sueño a los ingenieros de backend (o hasta bien entrada la madrugada).

SQL Migration Tool

¿Para quién es?

SMT es una herramienta práctica para:

  • Desarrolladores backend y DBAs que trabajan con MySQL, PostgreSQL o Microsoft SQL Server y desean una forma estructurada de rastrear y aplicar cambios de esquema en diferentes entornos
  • Equipos que gestionan microservicios o arquitecturas multi-inquilino, donde múltiples proyectos pueden compartir una base de datos y el seguimiento de las migraciones debe permanecer aislado por servicio
  • Equipos de ingeniería con pipelines de CI/CD, donde los cambios en la base de datos deben aplicarse de forma automática y fiable sin intervención humana durante los despliegues
  • Proyectos que heredan bases de código heredadas sin un sistema de migración existente, donde introducir una solución pesada basada en ORM no es práctico ni deseable

Por Qué el SQL Puro Importa

La mayoría de las herramientas de migración te piden que describas los cambios de esquema mediante un DSL, la sintaxis de migración de un ORM o alguna capa de abstracción. SMT adopta el enfoque opuesto: tus migraciones son simples archivos .sql. Esto significa:

  • Escribes exactamente lo que se ejecuta; por lo tanto, no hay sorpresas con el SQL generado
  • Tus archivos .sql se pueden ejecutar directamente en cualquier cliente de base de datos, independientemente de la propia herramienta
  • No hay ataduras a un entorno de ejecución de lenguaje, framework u ORM específicos
  • Cada migración vive en tu sistema de control de versiones como cualquier otro archivo fuente

Esto es una compensación deliberada en favor de la transparencia y la portabilidad.

Capacidades clave

  • Soporte multi-entorno. Gestiona desarrollo, staging y producción desde una única configuración de proyecto. Las migraciones se controlan por entorno para que siempre sepas qué se ha aplicado dónde.
  • Reemplazos dinámicos. Inyecta valores específicos del entorno directamente en tus archivos SQL en tiempo de ejecución. Útil para apuntar a diferentes esquemas, prefijos de tabla o insertar datos de prueba que varían según el entorno.
  • Gestión flexible de credenciales. Las credenciales nunca tienen que residir en el código fuente. SMT soporta archivos .env y AWS Secrets Manager, o puedes pasarlas en tiempo de ejecución a través de argumentos de CLI.
  • Soporte de scripts. Además de las migraciones versionadas, puedes ejecutar scripts SQL ad hoc (rellenos de datos, operaciones de mantenimiento, correcciones puntuales) con el mismo sistema de reemplazo dinámico aplicado.
  • Seguimiento multiproyecto. Múltiples proyectos de migración pueden ejecutarse en la misma base de datos, cada uno identificado por una clave única. Esencial para configuraciones de microservicios donde varios servicios comparten un servidor de base de datos pero poseen esquemas distintos.
  • Reversiones mediante SQL puro. Los scripts de reversión también son solo archivos .sql. Lo que se ejecuta en la reversión es exactamente lo que escribiste, sin inferencias

Integración CI/CD

SMT se distribuye tanto como aplicación de escritorio como una paquete npm CLI. Para flujos de trabajo automatizados, la CLI es la interfaz principal:

1npm install -g @2amtech/sql-migration-tool
22am-smt init

A partir de ahí, las migraciones se pueden ejecutar como parte de cualquier pipeline de CI/CD compatible con Node.js: GitHub Actions, GitLab CI, Jenkins, o la herramienta que su equipo ya utilice. Sin solicitudes interactivas ni dependencia de GUI en entornos de automatización.

Bases de datos compatibles

  • MySQL / MariaDB
  • PostgreSQL
  • Microsoft SQL Server

Aplicación de escritorio y CLI, con licencia MIT

Tanto la aplicación de escritorio (disponible para macOS y Linux) y la Herramienta CLI se publican bajo la licencia MIT. Son de uso, modificación e integración gratuitos en proyectos comerciales sin restricciones. La versión para Windows estará disponible próximamente.

La aplicación de escritorio ofrece a los desarrolladores una interfaz visual para gestionar proyectos de migración, revisar el historial y ejecutar scripts manualmente. La CLI se encarga de todo en contextos de automatización. Son complementarias y puedes usar una, la otra o ambas, según el contexto.

Navigate

Empecemos

Si tu equipo está aplicando cambios de esquema manualmente, registrándolos en un documento compartido, o confiando en herramientas de migración ORM que abstraen demasiado, SMT merece la pena echarle un vistazo.