CLI y biblioteca de Go para gestionar cambios en el esquema de bases de datos mediante archivos SQL versionados o funciones de Go.
golang-migrate/migrate
Herramienta de migraciones de bases de datos escrita en Go, con CLI y biblioteca para aplicar cambios de esquema ordenados en numerosas bases de datos.
- Estrellas
- 18,983
- Forks
- 1,618
- Issues abiertos
- 492
- Último commit
- el mes pasado
¿Qué es?
migrate lee archivos de migración versionados desde fuentes como el sistema de archivos local, S3 o GitHub y los aplica en orden a una base de datos de destino. Cada migración consta de un par de archivos up y down, por lo que los cambios se pueden aplicar o revertir. Los drivers de bases de datos se encargan de la ejecución, mientras que la lógica de orden y estado se centraliza en el núcleo.
Admite una amplia variedad de bases de datos, entre ellas PostgreSQL, MySQL y MariaDB, SQLite, MongoDB, Cassandra, Neo4j, Google Cloud Spanner, CockroachDB, ClickHouse y SQL Server. Entre las fuentes de migración se incluyen rutas del sistema de archivos, io/fs, datos binarios integrados, GitHub, GitLab, Bitbucket, AWS S3 y Google Cloud Storage.
Puedes ejecutarla como herramienta de línea de comandos independiente, usar la imagen oficial de Docker o importarla como biblioteca de Go. La biblioteca acepta tu propio cliente de base de datos y logger, y admite detenciones controladas para ayudar a evitar migraciones parciales.
Funciones clave
- 01Aplica archivos de migración up y down en orden de versión.
- 02Admite numerosas bases de datos, como PostgreSQL, MySQL, SQLite, MongoDB y Spanner.
- 03Lee migraciones del sistema de archivos, datos integrados, hosts Git y almacenamiento en la nube.
- 04Ofrece una CLI, una imagen de Docker y una biblioteca de Go.
- 05Al usarse como biblioteca, acepta un cliente de base de datos existente y un logger personalizado.
Casos de uso
- Versionar cambios de esquema para un servicio de Go respaldado por PostgreSQL o MySQL.
- Ejecutar migraciones como paso de una canalización de CI/CD o de despliegue de contenedores.
- Integrar migraciones en un binario de Go para distribuirlas junto con la aplicación.
- Gestionar cambios de esquema en varios motores de bases de datos con una sola herramienta.
Inicio rápido
- 1
Lee la guía de inicio e instala la CLI tal como se indica
- 2
Ejecuta una migración con Docker y sustituye el marcador de posición del directorio de migraciones
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Antes de usarlo
- La licencia no está claramente identificada en los metadatos del proyecto, así que consulta las condiciones de licencia del repositorio antes de usarlo.
Temas
Preguntas frecuentes
- ¿Qué es migrate?
- Herramienta de migraciones de bases de datos escrita en Go, con CLI y biblioteca para aplicar cambios de esquema ordenados en numerosas bases de datos. migrate lee archivos de migración versionados desde fuentes como el sistema de archivos local, S3 o GitHub y los aplica en orden a una base de datos de destino. Cada migración consta de un par de archivos up y down, por lo que los cambios se pueden aplicar o revertir. Los drivers de bases de datos se encargan de la ejecución, mientras que la lógica de orden y estado se centraliza en el núcleo.
- ¿migrate es gratuito? ¿Qué licencia tiene?
- migrate es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿migrate sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de migrate fue el 9 sept 2026.
- ¿Para qué puedo usar migrate?
- Versionar cambios de esquema para un servicio de Go respaldado por PostgreSQL o MySQL. Ejecutar migraciones como paso de una canalización de CI/CD o de despliegue de contenedores. Integrar migraciones en un binario de Go para distribuirlas junto con la aplicación. Gestionar cambios de esquema en varios motores de bases de datos con una sola herramienta.
- ¿Cómo se instala migrate?
- Lee la guía de inicio e instala la CLI tal como se indica Ejecuta una migración con Docker y sustituye el marcador de posición del directorio de migraciones: docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
- ¿Dónde consigo migrate?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/golang-migrate/migrate
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Herramienta ligera de línea de comandos, independiente del framework, para gestionar migraciones de bases de datos en SQL entre equipos y entornos.
Cliente SQL de escritorio gratuito y multiplataforma, y herramienta para bases de datos compatible con más de 100 bases mediante drivers JDBC y ODBC.
Cliente de bases de datos gratuito y local, con asistencia de IA y un espacio de trabajo SQL compatible con más de 40 bases de datos, disponible para escritorio, web, Docker y CLI.
Un compilador de SQL que lee tus consultas y genera código con tipos seguros para Go, Kotlin, Python y TypeScript.
Un generador de consultas SQL para TypeScript con seguridad de tipos, que autocompleta tablas, columnas y tipos de resultados en distintas bases de datos SQL.