Spatie DbDumper — это библиотека на PHP, предназначенная для программного создания дампов баз данных различных систем управления базами данных (СУБД). Проект возник как набор утилит для автоматизации экспорта структур и данных из популярных СУБД, позволяя разработчикам и администраторам управлять процессом резервного копирования из кода приложений. Библиотека реализует абстракции для работы с конкретными СУБД и предоставляет единый интерфейс для запуска команды дампа, настройки параметров и обработки результатов.
Реализация ориентирована на интеграцию в приложения, системы непрерывной интеграции и скрипты обслуживания, где требуется программный контроль за созданием резервных копий. Несмотря на использование особенностей конкретных СУБД (например, mysqldump для MySQL или pg_dump для PostgreSQL), Spatie DbDumper инкапсулирует эти детали и предлагает возможности по указанию настроек подключения, исключений таблиц, сжатия вывода и перенаправления результата в файл или поток. При отсутствии или ограниченности документации о некоторых аспектах проекта, общая функциональность и сценарии использования описаны на основе типичных практик аналогичных библиотек.
- Поддержка нескольких СУБД: обеспечение абстракции для различных движков баз данных с конкретными реализациями команд дампа.
- Программный интерфейс: создание и конфигурация задач дампа через объекты и методы в коде PHP.
- Настройки подключения: указание хоста, порта, имени пользователя, пароля и имени базы данных.
- Исключения и фильтрация: возможность исключать отдельные таблицы или схемы из дампа.
- Управление форматом вывода: выбор между дампом структуры, данных или комбинированным вариантом, настройка дополнительных флагов утилит.
- Сжатие и потоковый вывод: поддержка сжатия результата (например, gzip) и запись дампа прямо в файл или вывод в поток для последующей обработки.
- Интеграция в автоматизацию: использование в скриптах деплоя, CI/CD и задачах резервного копирования на стороне приложения.
- Обработка ошибок и валидация: валидация параметров и поверхностная обработка ошибок выполнения внешних утилит.
- Расширяемость: возможность добавления собственных реализаций для специфичных СУБД или нестандартных сценариев дампа.
- Зависимость от внешних утилит: использование нативных инструментов СУБД (например, mysqldump, pg_dump) для выполнения фактического экспорта данных.