Repolode
amacneil

amacneil/dbmate

Лёгкий инструмент командной строки для управления миграциями баз данных на чистом SQL — без привязки к фреймворку.

Звёзды
7,465
Форки
385
Открытые issues
31
Последний коммит
16 часов назад

Что это?

Dbmate помогает поддерживать схему базы данных в актуальном состоянии у разработчиков и на production-серверах, применяя SQL-файлы миграций с версиями по временным меткам. Инструмент поставляется как отдельный бинарный файл и работает с Go, Node.js, Python, Ruby, PHP, Rust, C++ и любым другим стеком, который использует поддерживаемую базу данных.

Миграции записываются на чистом SQL: в одном файле задаются секции `migrate:up` и `migrate:down`. По умолчанию каждая миграция выполняется в транзакции, а применённые версии записываются в таблицу `schema_migrations`. Dbmate также может сохранить итоговую схему в файл `schema.sql`, чтобы изменения схемы отображались в git как наглядные diff.

Инструмент поддерживает PostgreSQL, MySQL, MariaDB, SQLite, ClickHouse, BigQuery и Spanner через интерфейс PostgreSQL. Параметры подключения задаются переменной `DATABASE_URL` или файлом `.env`. Среди доступных команд — создание и удаление баз данных, ожидание готовности базы и откат миграций.

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

  • 01Файлы миграций на чистом SQL с секциями up и down
  • 02Миграции с версиями по временным меткам, чтобы избежать конфликтов версий между разработчиками
  • 03По умолчанию миграции атомарно выполняются внутри транзакции
  • 04Сохраняет схему в `schema.sql`, чтобы проверять её изменения в системе контроля версий
  • 05Читает URL подключения из переменных окружения или файла `.env`

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

  • Поддержание схемы в актуальном состоянии у команды, работающей над одним приложением
  • Управление миграциями для нескольких сервисов, написанных на разных языках
  • Создание и удаление тестовых баз данных в CI перед запуском набора тестов
  • Запуск миграций в production или контейнерах с ожиданием готовности базы данных

Темы

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

Что такое dbmate?
Лёгкий инструмент командной строки для управления миграциями баз данных на чистом SQL — без привязки к фреймворку. Dbmate помогает поддерживать схему базы данных в актуальном состоянии у разработчиков и на production-серверах, применяя SQL-файлы миграций с версиями по временным меткам. Инструмент поставляется как отдельный бинарный файл и работает с Go, Node.js, Python, Ruby, PHP, Rust, C++ и любым другим стеком, который использует поддерживаемую базу данных.
dbmate можно использовать бесплатно? Какая у него лицензия?
dbmate распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
dbmate всё ещё поддерживается?
Активно поддерживается. Последний коммит в dbmate — 18 окт. 2026 г..
Для чего можно использовать dbmate?
Поддержание схемы в актуальном состоянии у команды, работающей над одним приложением Управление миграциями для нескольких сервисов, написанных на разных языках Создание и удаление тестовых баз данных в CI перед запуском набора тестов Запуск миграций в production или контейнерах с ожиданием готовности базы данных
Где скачать dbmate?
Исходный код и инструкции по установке — на GitHub: https://github.com/amacneil/dbmate

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

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

Полнофункциональный инструмент для изучения баз данных: проектирование, навигация, документирование и анализ схем, включая ERD-диаграммы для крупных и запутанных баз данных.

2,2 тыс.145ElmMITОбновлён 2 месяца назад