Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
go-dbmigrate — Biblioteca Go y CLI para gestionar migraciones de esquemas de bases de datos con soporte para PostgreSQL, MySQL, SQLite y Cassandra, incluyendo flujos de trabajo de migración ascendente/descendente. | Kitploit
Herramientas/GitHubGitHub/moisei-dev/go-dbmigrate
Auditoría de ConfiguraciónDevSecOpsUtilidades y FrameworksSeguridad de Cadena de SuministroSeguridad de Bases de Datos
GitHubmoisei-dev/go-dbmigrate

go-dbmigrate

Biblioteca Go y CLI para gestionar migraciones de esquemas de bases de datos con soporte para PostgreSQL, MySQL, SQLite y Cassandra, incluyendo flujos de trabajo de migración ascendente/descendente.

Ver Repositorio
23hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

migrate

Build Status GoDoc

Un asistente de migraciones escrito en Go. Úsalo en tu código Golang existente o ejecuta comandos mediante la CLI.

GoCode   import github.com/mattes/migrate/migrate
CLI      go get -u github.com/mattes/migrate

Características

  • Muy fácil de implementar la interfaz Driver.
  • Finaliza correctamente las migraciones en ejecución con ^C.
  • Sin rutinas mágicas de búsqueda de rutas, sin archivos de configuración codificados.
  • La CLI está construida sobre el paquete migrate.

Drivers disponibles

  • PostgreSQL
  • Cassandra
  • SQLite
  • MySQL (experimental)
  • Bash (planificado)

¿Necesitas otro driver? Simplemente implementa la interfaz Driver y abre un PR.

Uso desde la terminal

# instalar
go get github.com/mattes/migrate

# crear un nuevo archivo de migración en la ruta
migrate -url driver://url -path ./migrations create migration_file_xyz

# aplicar todas las migraciones disponibles
migrate -url driver://url -path ./migrations up

# revertir todas las migraciones
migrate -url driver://url -path ./migrations down

# revertir la migración aplicada más recientemente y luego ejecutarla de nuevo.
migrate -url driver://url -path ./migrations redo

# ejecutar el comando down y luego up
migrate -url driver://url -path ./migrations reset

# mostrar la versión actual de la migración
migrate -url driver://url -path ./migrations version

# aplicar las siguientes n migraciones
migrate -url driver://url -path ./migrations migrate +1
migrate -url driver://url -path ./migrations migrate +2
migrate -url driver://url -path ./migrations migrate +n

# revertir las n migraciones anteriores
migrate -url driver://url -path ./migrations migrate -1
migrate -url driver://url -path ./migrations migrate -2
migrate -url driver://url -path ./migrations migrate -n

# ir a una migración específica
migrate -url driver://url -path ./migrations goto 1
migrate -url driver://url -path ./migrations goto 10
migrate -url driver://url -path ./migrations goto v

Uso en Go

Consulta GoDoc aquí: http://godoc.org/github.com/mattes/migrate/migrate

import "github.com/mattes/migrate/migrate"

// Importa cualquier driver requerido para que se registren y estén disponibles
import _ "github.com/mattes/migrate/driver/mysql"

// usa las versiones síncronas de las funciones de migración ...
allErrors, ok := migrate.UpSync("driver://url", "./path")
if !ok {
  fmt.Println("Oh no ...")
  // haz algo con el slice allErrors
}

// usa la versión asíncrona de las funciones de migración ...
pipe := migrate.NewPipe()
go migrate.Up(pipe, "driver://url", "./path")
// pipe es básicamente un canal
// escribe tu propio listener de canal. consulta writePipe() en main.go como ejemplo.

Archivos de migración

El formato de los archivos de migración es el siguiente:

001_initial_plan_to_do_sth.up.sql     # instrucciones de migración up
001_initial_plan_to_do_sth.down.sql   # instrucciones de migración down
002_xxx.up.sql
002_xxx.down.sql
...

¿Por qué dos archivos? De esta manera aún podrías hacer algo como psql -f ./db/migrations/001_initial_plan_to_do_sth.up.sql y no hay necesidad de ningún lenguaje de marcado personalizado para dividir las migraciones up y down. Ten en cuenta que la extensión del archivo depende del driver.

Alternativas

  • https://bitbucket.org/liamstask/goose
  • https://github.com/tanel/dbmigrate
  • https://github.com/BurntSushi/migration
  • https://github.com/DavidHuie/gomigrate
  • https://github.com/rubenv/sql-migrate
Descargar herramienta