Dolt когда Git встречается с SQL
Представьте, что вы можете делать с базой данных всё то же самое, что и с кодом в Git: коммитить изменения, создавать ветки, откатываться к предыдущим версиям и даже мержить конфликты. Именно это предлагает Dolt — уникальная гибридная система, сочетающая мощь SQL с удобством контроля версий.
Что такое Dolt?
Dolt позиционирует себя как "Git для данных" — это SQL-база данных с полным набором функций контроля версий. Под капотом это MySQL-совместимая СУБД, где каждая операция записи может стать коммитом, а вся история изменений доступна через привычные Git-команды.
Основные преимущества:
- Полная совместимость с MySQL (работает с любым MySQL-клиентом)
- Встроенная система версионирования таблиц
- Поддержка ветвления и слияния данных
- Возможность отката изменений в любой момент
Ключевые возможности
1. Знакомый интерфейс Git
Dolt предоставляет две точки входа:
- CLI-интерфейс с командами, идентичными Git:
dolt init # инициализация репозитория
dolt add . # добавление изменений
dolt commit -m "Сообщение" # создание коммита
dolt log # просмотр истории
- SQL-интерфейс через системные таблицы и хранимые процедуры:
-- Просмотр истории коммитов
SELECT * FROM dolt_log;
-- Создание коммита через SQL
CALL dolt_commit('-am', 'Добавил новые данные');
2. Полноценная SQL-база данных
Dolt поддерживает все основные функции реляционных СУБД:
- Внешние ключи и ограничения
- Триггеры и хранимые процедуры
- Сложные JOIN-запросы (до 12 таблиц)
- Транзакции
Пример создания схемы:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50)
);
3. Работа с историей изменений
Просматривайте различия между версиями данных:
-- Какие строки изменились
SELECT * FROM dolt_diff_employees;
-- Кто и когда менял конкретную строку
SELECT * FROM dolt_blame_employees;
4. Откат изменений
Ошиблись в данных? Никаких проблем:
-- Отмена последних изменений
CALL dolt_reset('--hard');
-- Возврат к конкретному коммиту
CALL dolt_checkout('коммит_хэш');
Практическое применение
- Версионирование конфигураций — храните историю изменений настроек приложения
- Анализ данных — сравнивайте разные версии датасетов
- Коллаборация — несколько разработчиков могут работать параллельно в разных ветках
- Аварийное восстановление — мгновенный откат к рабочей версии данных
Как начать использовать
Установка проста — один бинарный файл (~100 МБ):
# Linux/Mac
sudo bash -c 'curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bash'
# Windows
choco install dolt
Dolt — это свежий взгляд на работу с данными, который особенно пригодится:
- Командам, где важна история изменений данных
- Разработчикам, уже знакомым с Git
- Проектам, требующим сложного управления версиями данных
Если вы работаете с базами данных и хотели бы иметь такие же удобные инструменты контроля версий, как в Git, Dolt определённо заслуживает вашего внимания. Проект активно развивается и уже используется в продакшене многими компаниями.
