Этот пакет предоставляет независимый от платформы менеджер резервного копирования баз данных для выгрузки и восстановления баз данных из S3, Dropbox, FTP, SFTP и Rackspace Cloud.
используйте версию 2+ для >= PHP 7.3
используйте версию 1 для <PHP 7.2
Посмотрите видеотур, показывающий драйвер Laravel в действии, чтобы получить представление о том, что возможно.
поддерживает MySQL
и PostgreSQL
сжать с помощью Gzip
независимый от фреймворка
мертвая простая конфигурация
Драйвер Ларавел
Драйвер Symfony
Менеджер резервного копирования базы данных
Оглавление
Быстро и грязно
Требования
Установка
Использование
Рекомендации по внесению взносов
Мейнтейнеры
Нарушения обратной совместимости
Лицензия
Настройте свои базы данных.
// config/database.php'development' => ['type' => 'mysql','host' => 'localhost','port' => '3306','user' => 'root',' pass' => 'password','database' => 'test',// Если для параметра SingleTransaction установлено значение true, будет установлен флаг --single-transcation.// Это полезно для транзакционных баз данных, таких как InnoDB.// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_single-transaction'singleTransaction' => false,// Не выгружать данные таблицы// Устанавливать только имена таблиц , без имени базы данных// Пример: ['table1', 'table2']// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_ignore-table'ignoreTables' => [],// использование SSL для подключения к вашей базе данных - активная поддержка SSL (только MySQL ):'ssl'=>false, // добавляем дополнительные параметры в команду dump (например, '--max-allowed-packet')'extraParams'=>null, ], 'production' => ['type' => 'postgresql','host' => 'localhost','port' => '5432','user' => 'postgres','pass' => 'пароль' ,'база данных' => 'тест', ],
Настройте файловые системы.
// config/storage.php'local' => ['type' => 'Local','root' => '/path/to/working/directory', ],'s3' => ['type' => 'AwsS3','key' => '','secret' => '','region' => 'us-east-1','version' = > 'latest','bucket' => '','root' => '','use_path_style_endpoint' => false, ],'b2' => ['type' => 'B2','key' => '','accountId' => '','bucket' => '', ],'gcs' => ['type' => 'Gcs','key' => '','secret' => '','version' => 'latest','bucket' => '', 'корень' => '', ],'rackspace' => ['type' => 'Rackspace','username' => '','key' => '','container' => '','zone' => '',' корень' => '', ],'dropbox' => ['type' => 'DropboxV2','token' => '','key' => '','secret' => '','app' => '',' корень' => '', ],'ftp' => ['type' => 'Ftp','host' => '','username' => '','password' => '','root' => '',' порт' => 21,'пассивный' => правда,'ssl' => правда,'тайм-аут' => 30, ],'sftp' => ['type' => 'Sftp','host' => '','username' => '','password' => '','root' => '',' порт' => 21,'таймаут' => 10,'privateKey' => '', ],'flysystem' => ['type' => 'Flysystem','name' => 's3_backup',//'prefix' => 'upload',],'doSpaces' => ['type' => 'AwsS3','key' => '','secret' => '','region' => '','bucket' => '','root' => '','endpoint' => '','use_path_style_endpoint' => false, ],'webdav' => ['type' => 'Webdav','baseUri' => 'http://myserver.com','userName' => '','password' => '','prefix ' => '', ],
Резервное копирование/восстановление из любой настроенной базы данных.
Сделайте резервную копию базы данных разработки на Amazon S3
. Путь резервной копии S3 в конечном итоге будет test/backup.sql.gz
, когда с ним завершится gzip
.
используйте BackupManagerFilesystemsDestination;$manager = требуется 'bootstrap.php';$manager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip') ;
Резервное копирование/восстановление из любой настроенной файловой системы.
Восстановите файл базы данных test/backup.sql.gz
из Amazon S3
в базу данных development
.
$manager = требуется 'bootstrap.php';$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip');
Этот пакет не позволяет выполнять резервное копирование базы данных одного типа и восстанавливать ее в другой. Дамп MySQL несовместим с PostgreSQL.
PHP 5.5
Для поддержки MySQL требуются mysqldump
и двоичные файлы командной строки mysql
Для поддержки PostgreSQL требуются двоичные файлы командной строки pg_dump
и psql
Для поддержки Gzip требуются двоичные файлы командной строки gzip
и gunzip
.
Композитор
Запустите следующее, чтобы включить это через Composer
композитору требуется менеджер резервных копий/менеджер резервных копий
Затем вам нужно будет выбрать соответствующие пакеты для адаптеров, которые вы хотите использовать.
# для поддержки s3composer требуется League/flysystem-aws-s3-v3# для поддержки b2composer требуется mhetreramesh/flysystem-backblaze# для поддержки Google cscomposer требуется League/flysystem-aws-s3-v2# для установки предпочтительного драйвера Dropbox v2 для композера требуется Spatie/ Flysystem-dropbox# для установки устаревшего драйвера Dropbox v2 требуется Composer srmklive/flysystem-dropbox-v2# для поддержкиrackspacecomposer требуется League/flysystem-rackspace# для поддержки sftpcomposer требуется League/flysystem-sftp# для поддержки webdav (поддерживается owncloud и многими другими)composer требует League/flysystem-webdav
После установки пакет необходимо загрузить (первоначальная конфигурация), прежде чем его можно будет использовать.
Здесь мы предоставили собственный пример PHP.
Необходимую начальную загрузку можно найти в примере здесь.
Мы рекомендуем использовать бродячую конфигурацию, поставляемую с этим пакетом, для разработки и внесения вклада. Просто установите VirtualBox, Vagrant и Ansible, а затем запустите vagrant up
в корневой папке. Для вас будет создана и запущена виртуальная машина, специально предназначенная для разработки пакета.
При внесении вклада учитывайте следующие рекомендации:
Стиль кода — PSR-2.
Интерфейсы НЕ должны иметь суффикс Interface
, Traits НЕ должны иметь суффикс Trait
.
Все методы и классы должны содержать докблоки.
Убедитесь, что вы отправляете тесты с минимальным 100-процентным покрытием. Учитывая простоту проекта, это имеет смысл.
При планировании запроса на добавление новой функциональности, возможно, будет разумно подать предложение, чтобы обеспечить совместимость с целями проекта.
Этот пакет поддерживается Шоном МакКулом и вами!
Удалить поддержку symfony 2. В частности, версии symfony/process < 3.x
Этот пакет лицензируется по лицензии MIT. Сходите с ума.