Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
go-dbmigrate — Libreria Go e CLI per la gestione delle migrazioni dello schema del database, con supporto per PostgreSQL, MySQL, SQLite e Cassandra, inclusi i flussi di lavoro di migrazione up/down. | Kitploit
Strumenti/GitHubGitHub/moisei-dev/go-dbmigrate
Audit di ConfigurazioneDevSecOpsUtilità e FrameworkSicurezza della Supply ChainSicurezza dei Database
GitHubmoisei-dev/go-dbmigrate

go-dbmigrate

Libreria Go e CLI per la gestione delle migrazioni dello schema del database, con supporto per PostgreSQL, MySQL, SQLite e Cassandra, inclusi i flussi di lavoro di migrazione up/down.

Vedi Repository
235 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

migrate

Build Status GoDoc

Un helper per le migrazioni scritto in Go. Usalo nel tuo codice Golang esistente oppure esegui i comandi tramite la CLI.

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

Caratteristiche

  • Estremamente semplice da implementare con l'interfaccia Driver.
  • Termina in modo pulito le migrazioni in esecuzione su ^C.
  • Nessuna routine magica per i percorsi di ricerca, nessun file di configurazione hard-coded.
  • La CLI è costruita sopra il pacchetto migrate.

Driver disponibili

  • PostgreSQL
  • Cassandra
  • SQLite
  • MySQL (sperimentale)
  • Bash (previsto)

Ti serve un altro driver? Implementa semplicemente l'interfaccia Driver e apri una PR.

Utilizzo dal Terminale

# installazione
go get github.com/mattes/migrate

# crea un nuovo file di migrazione nel percorso
migrate -url driver://url -path ./migrations create migration_file_xyz

# applica tutte le migrazioni disponibili
migrate -url driver://url -path ./migrations up

# annulla tutte le migrazioni
migrate -url driver://url -path ./migrations down

# annulla la migrazione applicata più di recente, poi eseguila di nuovo.
migrate -url driver://url -path ./migrations redo

# esegui il comando down e poi up
migrate -url driver://url -path ./migrations reset

# mostra la versione corrente della migrazione
migrate -url driver://url -path ./migrations version

# applica le prossime n migrazioni
migrate -url driver://url -path ./migrations migrate +1
migrate -url driver://url -path ./migrations migrate +2
migrate -url driver://url -path ./migrations migrate +n

# annulla le precedenti n migrazioni
migrate -url driver://url -path ./migrations migrate -1
migrate -url driver://url -path ./migrations migrate -2
migrate -url driver://url -path ./migrations migrate -n

# vai a una migrazione specifica
migrate -url driver://url -path ./migrations goto 1
migrate -url driver://url -path ./migrations goto 10
migrate -url driver://url -path ./migrations goto v

Utilizzo in Go

Vedi GoDoc qui: http://godoc.org/github.com/mattes/migrate/migrate

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

// Importa tutti i driver necessari affinché vengano registrati e resi disponibili
import _ "github.com/mattes/migrate/driver/mysql"

// usa le versioni sincrone delle funzioni di migrazione ...
allErrors, ok := migrate.UpSync("driver://url", "./path")
if !ok {
  fmt.Println("Oh no ...")
  // fai qualcosa con lo slice allErrors
}

// usa la versione asincrona delle funzioni di migrazione ...
pipe := migrate.NewPipe()
go migrate.Up(pipe, "driver://url", "./path")
// pipe è fondamentalmente solo un canale
// scrivi il tuo listener per il canale. vedi writePipe() in main.go come esempio.

File di migrazione

Il formato dei file di migrazione è il seguente:

001_initial_plan_to_do_sth.up.sql     # istruzioni di migrazione up
001_initial_plan_to_do_sth.down.sql   # istruzioni di migrazione down
002_xxx.up.sql
002_xxx.down.sql
...

Perché due file? In questo modo puoi ancora fare cose come psql -f ./db/migrations/001_initial_plan_to_do_sth.up.sql e non c'è bisogno di alcun linguaggio di markup personalizzato per dividere le migrazioni up e down. Nota che l'estensione del file dipende dal driver.

Alternative

  • 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
Scarica lo strumento