Repolode
golang-migrate

golang-migrate/migrate

Инструмент миграции баз данных на Go с CLI и библиотекой для применения упорядоченных изменений схемы в разных СУБД.

Звёзды
18,983
Форки
1,618
Открытые issues
492
Последний коммит
в прошлом месяце

Что это?

migrate считывает файлы миграций с версиями из источника, например локальной файловой системы, S3 или GitHub, и применяет их по порядку к целевой базе данных. Каждая миграция состоит из пары файлов up и down, поэтому изменения можно применить или откатить. За выполнение отвечают драйверы баз данных, а логика сортировки и отслеживания состояния сосредоточена в ядре.

Инструмент поддерживает множество баз данных, включая PostgreSQL, MySQL и MariaDB, SQLite, MongoDB, Cassandra, Neo4j, Google Cloud Spanner, CockroachDB, ClickHouse и SQL Server. Источниками миграций могут быть пути в файловой системе, io/fs, встроенные бинарные данные, GitHub, GitLab, Bitbucket, AWS S3 и Google Cloud Storage.

Его можно запускать как отдельный инструмент командной строки, использовать официальный Docker-образ или подключать как библиотеку Go. Библиотека принимает собственные клиент базы данных и логгер, а также поддерживает корректную остановку, чтобы помочь избежать частично применённых миграций.

Ключевые возможности

  • 01Применяет файлы миграций up и down в порядке версий.
  • 02Поддерживает множество баз данных, включая PostgreSQL, MySQL, SQLite, MongoDB и Spanner.
  • 03Считывает миграции из файловой системы, встроенных данных, Git-хостингов и облачных хранилищ.
  • 04Предоставляет CLI, Docker-образ и библиотеку Go.
  • 05При использовании в качестве библиотеки принимает существующий клиент базы данных и пользовательский логгер.

Сценарии использования

  • Версионирование изменений схемы для сервиса на Go, работающего с PostgreSQL или MySQL.
  • Запуск миграций как этапа конвейера CI/CD или развёртывания контейнеров.
  • Встраивание миграций в бинарный файл Go, чтобы поставлять их вместе с приложением.
  • Управление изменениями схем в нескольких СУБД с помощью одного инструмента.

Быстрый старт

  1. 1

    Прочитайте руководство для начала работы и установите CLI, следуя инструкциям

  2. 2

    Запустите миграцию с помощью Docker, заменив заполнитель каталога миграций

    docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2

Что важно знать

  • Лицензия не указана явно в метаданных проекта, поэтому перед использованием проверьте условия лицензии в репозитории.

Темы

Частые вопросы

Что такое migrate?
Инструмент миграции баз данных на Go с CLI и библиотекой для применения упорядоченных изменений схемы в разных СУБД. migrate считывает файлы миграций с версиями из источника, например локальной файловой системы, S3 или GitHub, и применяет их по порядку к целевой базе данных. Каждая миграция состоит из пары файлов up и down, поэтому изменения можно применить или откатить. За выполнение отвечают драйверы баз данных, а логика сортировки и отслеживания состояния сосредоточена в ядре.
migrate можно использовать бесплатно? Какая у него лицензия?
migrate распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
migrate всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в migrate — 9 сент. 2026 г..
Для чего можно использовать migrate?
Версионирование изменений схемы для сервиса на Go, работающего с PostgreSQL или MySQL. Запуск миграций как этапа конвейера CI/CD или развёртывания контейнеров. Встраивание миграций в бинарный файл Go, чтобы поставлять их вместе с приложением. Управление изменениями схем в нескольких СУБД с помощью одного инструмента.
Как установить migrate?
Прочитайте руководство для начала работы и установите CLI, следуя инструкциям Запустите миграцию с помощью Docker, заменив заполнитель каталога миграций: docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Где скачать migrate?
Исходный код и инструкции по установке — на GitHub: https://github.com/golang-migrate/migrate

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты