Un ORM headless y ligero para TypeScript compatible con PostgreSQL, MySQL y SQLite, que funciona en Node.js, Bun, Deno y entornos edge.
amacneil/dbmate
Herramienta ligera de línea de comandos, independiente del framework, para gestionar migraciones de bases de datos en SQL entre equipos y entornos.
- Estrellas
- 7,465
- Forks
- 385
- Issues abiertos
- 31
- Último commit
- hace 21 horas
¿Qué es?
Dbmate mantiene sincronizado el esquema de una base de datos entre desarrolladores y servidores de producción mediante archivos de migración SQL versionados con marcas de tiempo. Se distribuye como un binario independiente, por lo que puede usarse con Go, Node.js, Python, Ruby, PHP, Rust, C++ o cualquier otro stack que se conecte a una base de datos compatible.
Las migraciones se escriben en SQL sin procesar, con secciones `migrate:up` y `migrate:down` en un mismo archivo. De forma predeterminada, cada migración se ejecuta dentro de una transacción y las versiones aplicadas se registran en una tabla `schema_migrations`. Dbmate también puede volcar el esquema resultante en un archivo `schema.sql`, para que los cambios se vean como diferencias legibles en git.
La herramienta es compatible con PostgreSQL, MySQL, MariaDB, SQLite, ClickHouse, BigQuery y Spanner a través de su interfaz de PostgreSQL. Los datos de conexión se obtienen de una variable `DATABASE_URL` o de un archivo `.env`. Entre sus comandos se incluyen crear y eliminar bases de datos, esperar a que la base de datos esté lista y revertir migraciones.
Funciones clave
- 01Archivos de migración en SQL sin procesar con secciones up y down
- 02Migraciones versionadas con marcas de tiempo para evitar conflictos de versiones entre desarrolladores
- 03De forma predeterminada, las migraciones se ejecutan de manera atómica dentro de una transacción
- 04Genera un archivo schema.sql para revisar los cambios del esquema en el control de versiones
- 05Lee las URL de conexión de variables de entorno o de un archivo .env
Casos de uso
- Mantener sincronizados los cambios del esquema en un equipo que trabaja en una misma aplicación
- Gestionar migraciones de varios servicios escritos en distintos lenguajes
- Crear y eliminar bases de datos de prueba en CI antes de ejecutar una suite de pruebas
- Ejecutar migraciones en producción o en contenedores con un paso para esperar a que la base de datos esté lista
Inicio rápido
- 1
Instalar con Homebrew en macOS
brew install dbmate - 2
Comprobar que la herramienta instalada muestra la ayuda
dbmate --help - 3
Instalar con NPM como dependencia de desarrollo
npm install --save-dev dbmate
Antes de usarlo
- Requiere una URL de conexión a la base de datos, por lo que necesitas un servidor de base de datos en funcionamiento, como PostgreSQL, MySQL o SQLite.
- Las conexiones de PostgreSQL requieren TLS de forma predeterminada, por lo que en entornos locales suele ser necesario añadir sslmode=disable.
Temas
Preguntas frecuentes
- ¿Qué es dbmate?
- Herramienta ligera de línea de comandos, independiente del framework, para gestionar migraciones de bases de datos en SQL entre equipos y entornos. Dbmate mantiene sincronizado el esquema de una base de datos entre desarrolladores y servidores de producción mediante archivos de migración SQL versionados con marcas de tiempo. Se distribuye como un binario independiente, por lo que puede usarse con Go, Node.js, Python, Ruby, PHP, Rust, C++ o cualquier otro stack que se conecte a una base de datos compatible.
- ¿dbmate es gratuito? ¿Qué licencia tiene?
- dbmate es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿dbmate sigue mantenido?
- Mantenimiento activo. El último commit de dbmate fue el 18 oct 2026.
- ¿Para qué puedo usar dbmate?
- Mantener sincronizados los cambios del esquema en un equipo que trabaja en una misma aplicación Gestionar migraciones de varios servicios escritos en distintos lenguajes Crear y eliminar bases de datos de prueba en CI antes de ejecutar una suite de pruebas Ejecutar migraciones en producción o en contenedores con un paso para esperar a que la base de datos esté lista
- ¿Cómo se instala dbmate?
- Instalar con Homebrew en macOS: brew install dbmate Comprobar que la herramienta instalada muestra la ayuda: dbmate --help Instalar con NPM como dependencia de desarrollo: npm install --save-dev dbmate
- ¿Dónde consigo dbmate?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/amacneil/dbmate
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Editor SQL y gestor de bases de datos multiplataforma para Linux, macOS y Windows, compatible con MySQL, PostgreSQL, SQLite, SQL Server y muchos más.
Cliente de bases de datos multiplataforma y ligero para más de 100 bases de datos, con app de escritorio, Docker, CLI, asistente de SQL con IA y servidor MCP.
Interfaz de terminal controlada con el teclado para conectarse a muchas bases de datos SQL y consultarlas, inspirada en lazygit.
Herramienta full-stack para explorar bases de datos, diseñar, recorrer, documentar y analizar esquemas, con diagramas ERD para bases de datos grandes y desordenadas.
Un IDE SQL en el navegador que se despliega junto a los datos y se conecta a decenas de bases de datos y almacenes de datos, con SSO, auditoría y consultas asistidas por IA, bajo licencia MIT.