Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
go-dbmigrate — Библиотека Go и CLI для управления миграциями схемы базы данных с поддержкой PostgreSQL, MySQL, SQLite и Cassandra, включая рабочие процессы миграций up/down. | Kitploit
Инструменты/GitHubGitHub/moisei-dev/go-dbmigrate
Аудит конфигурацииDevSecOpsУтилиты и фреймворкиБезопасность Цепочки ПоставокБезопасность Баз Данных
GitHubmoisei-dev/go-dbmigrate

go-dbmigrate

Библиотека Go и CLI для управления миграциями схемы базы данных с поддержкой PostgreSQL, MySQL, SQLite и Cassandra, включая рабочие процессы миграций up/down.

Репозиторий
4 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

migrate

Build Status GoDoc

Хелпер для миграций, написанный на Go. Используйте его в своём существующем коде на Golang или запускайте команды через CLI.

root@kitploit:~
GoCode   import github.com/mattes/migrate/migrate
CLI      go get -u github.com/mattes/migrate

Возможности

  • Очень простая реализация интерфейса Driver.
  • Корректное завершение запущенных миграций по ^C.
  • Никаких магических процедур поиска путей, никаких жёстко заданных конфигурационных файлов.
  • CLI построен поверх пакета migrate.

Доступные драйверы

  • PostgreSQL
  • Cassandra
  • SQLite
  • MySQL (экспериментальный)
  • Bash (планируется)
  • Нужен другой драйвер? Просто реализуйте интерфейс Driver и откройте PR.

    Использование из терминала

    root@kitploit:~
    # установка
    go get github.com/mattes/migrate
    
    # создать новый файл миграции по указанному пути
    migrate -url driver://url -path ./migrations create migration_file_xyz
    
    # применить все доступные миграции
    migrate -url driver://url -path ./migrations up
    
    # откатить все миграции
    migrate -url driver://url -path ./migrations down
    
    # откатить последнюю применённую миграцию, затем запустить её снова.
    migrate -url driver://url -path ./migrations redo
    
    # выполнить команду down, а затем up
    migrate -url driver://url -path ./migrations reset
    
    # показать текущую версию миграции
    migrate -url driver://url -path ./migrations version
    
    # применить следующие n миграций
    migrate -url driver://url -path ./migrations migrate +1
    migrate -url driver://url -path ./migrations migrate +2
    migrate -url driver://url -path ./migrations migrate +n
    
    # откатить предыдущие n миграций
    migrate -url driver://url -path ./migrations migrate -1
    migrate -url driver://url -path ./migrations migrate -2
    migrate -url driver://url -path ./migrations migrate -n
    
    # перейти к конкретной миграции
    migrate -url driver://url -path ./migrations goto 1
    migrate -url driver://url -path ./migrations goto 10
    migrate -url driver://url -path ./migrations goto v
    

    Использование в Go

    Смотрите GoDoc здесь: http://godoc.org/github.com/mattes/migrate/migrate

    root@kitploit:~
    import "github.com/mattes/migrate/migrate"
    
    // Импортируйте любые необходимые драйверы, чтобы они были зарегистрированы и доступны
    import _ "github.com/mattes/migrate/driver/mysql"
    
    // используйте синхронные версии функций миграции ...
    allErrors, ok := migrate.UpSync("driver://url", "./path")
    if !ok {
      fmt.Println("О нет ...")
      // сделайте что-нибудь со срезом allErrors
    }
    
    // используйте асинхронную версию функций миграции ...
    pipe := migrate.NewPipe()
    go migrate.Up(pipe, "driver://url", "./path")
    // pipe — это, по сути, просто канал
    // напишите свой собственный слушатель канала. см. writePipe() в main.go в качестве примера.
    

    Файлы миграций

    Формат файлов миграций выглядит так:

    root@kitploit:~
    001_initial_plan_to_do_sth.up.sql     # инструкции для up-миграции
    001_initial_plan_to_do_sth.down.sql   # инструкции для down-миграции
    002_xxx.up.sql
    002_xxx.down.sql
    ...
    

    Почему два файла? Так вы всё ещё можете сделать что-то вроде psql -f ./db/migrations/001_initial_plan_to_do_sth.up.sql, и нет необходимости в каком-либо пользовательском языке разметки для разделения up- и down-миграций. Обратите внимание, что расширение имени файла зависит от драйвера.

    Альтернативы

    • 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
    Скачать инструмент