Repolode
golang-migrate

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. 1

    Lee la guía de inicio e instala la CLI tal como se indica

  2. 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