Dieses Paket bietet einen Framework-unabhängigen Datenbank-Backup-Manager zum Sichern und Wiederherstellen von Datenbanken aus S3, Dropbox, FTP, SFTP und Rackspace Cloud.
Verwenden Sie Version 2+ für >=PHP 7.3
Verwenden Sie Version 1 für <PHP 7.2
Sehen Sie sich eine Videotour an, die den Laravel-Fahrer in Aktion zeigt, um Ihnen eine Vorstellung davon zu geben, was möglich ist.
unterstützt MySQL und PostgreSQL
mit Gzip komprimieren
Framework-agnostisch
absolut einfache Konfiguration
Laravel-Treiber
Symfony-Treiber
Datenbanksicherungsmanager
Inhaltsverzeichnis
Schnell und schmutzig
Anforderungen
Installation
Verwendung
Beitragsrichtlinien
Betreuer
Unterbrechungen der Abwärtskompatibilität
Lizenz
Konfigurieren Sie Ihre Datenbanken.
// config/database.php'development' => ['type' => 'mysql','host' => 'localhost','port' => '3306','user' => 'root',' pass' => 'password','database' => 'test',// Wenn singleTransaction auf true gesetzt ist, wird das Flag --single-transcation gesetzt.// Dies ist nützlich bei Transaktionsdatenbanken wie InnoDB.// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_single-transaction'singleTransaction' => false,// Die angegebenen Tabellen nicht sichern// Nur Tabellennamen festlegen , ohne Datenbanknamen// Beispiel: ['table1', 'table2']// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_ignore-table'ignoreTables' => [],// Verwenden von SSL zum Herstellen einer Verbindung zu Ihrer Datenbank – aktive SSL-Unterstützung (nur MySQL). ):'ssl'=>false,// zusätzliche Optionen zum dump-command hinzufügen (wie '--max-allowed-packet')'extraParams'=>null, ], 'produktion' => ['typ' => 'postgresql','host' => 'localhost','port' => '5432','user' => 'postgres','pass' => 'password' ,'Datenbank' => 'Test', ],
Konfigurieren Sie Ihre Dateisysteme.
// 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' => '', 'root' => '', ],'rackspace' => ['type' => 'Rackspace','username' => '','key' => '','container' => '','zone' => '',' root' => '', ],'dropbox' => ['type' => 'DropboxV2','token' => '','key' => '','secret' => '','app' => '',' root' => '', ],'ftp' => ['type' => 'Ftp','host' => '','username' => '','password' => '','root' => '',' port' => 21,'passive' => true,'ssl' => true,'timeout' => 30, ],'sftp' => ['type' => 'Sftp','host' => '','username' => '','password' => '','root' => '',' port' => 21,'timeout' => 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 ' => '', ],
Sicherung in/Wiederherstellung von jeder konfigurierten Datenbank.
Sichern Sie die Entwicklungsdatenbank auf Amazon S3 . Der S3-Sicherungspfad lautet am Ende test/backup.sql.gz , wenn gzip damit fertig ist.
use BackupManagerFilesystemsDestination;$manager = require 'bootstrap.php';$manager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip') ;Sicherung auf/Wiederherstellung von jedem konfigurierten Dateisystem.
Stellen Sie die Datenbankdatei test/backup.sql.gz von Amazon S3 in der development wieder her.
$manager = require 'bootstrap.php';$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip');Mit diesem Paket ist die Sicherung von einem Datenbanktyp und die Wiederherstellung in einem anderen nicht möglich. Ein MySQL-Dump ist nicht mit PostgreSQL kompatibel.
PHP 5.5
Für die MySQL-Unterstützung sind mysqldump und mysql -Befehlszeilenbinärdateien erforderlich
Für die PostgreSQL-Unterstützung sind die Befehlszeilenbinärdateien pg_dump und psql erforderlich
Für die Gzip-Unterstützung sind die Befehlszeilenbinärdateien gzip und gunzip erforderlich
Komponist
Führen Sie Folgendes aus, um dies über Composer einzubinden
Composer benötigt Backup-Manager/Backup-Manager
Anschließend müssen Sie die entsprechenden Pakete für die Adapter auswählen, die Sie verwenden möchten.
# um s3composer zu unterstützen, ist league/flysystem-aws-s3-v3 erforderlich. # um b2composer zu unterstützen. ist mhetreramesh/flysystem-backblaze erforderlich. # um google cscomposer zu unterstützen. ist league/flysystem-aws-s3-v2 erforderlich. # um den bevorzugten Dropbox v2-Treiber zu installieren. Composer erforderlich spatie/ Flysystem-Dropbox# zur Installation des Legacy-Dropbox-v2-TreibersComposer erforderlich srmklive/flysystem-dropbox-v2# zur Unterstützung von RackspaceComposer benötigt League/Flysystem-Rackspace# zur Unterstützung von SFTP. Composer benötigt League/Flysystem-Sftp# zur Unterstützung von WebDav (unterstützt von Owncloud und vielen anderen). Composer benötigt League/Flysystem-WebDav
Nach der Installation muss das Paket zunächst gebootet werden (Erstkonfiguration), bevor es verwendet werden kann.
Wir haben hier ein natives PHP-Beispiel bereitgestellt.
Das erforderliche Bootstrapping finden Sie im Beispiel hier.
Wir empfehlen, für die Entwicklung und den Beitrag die mit diesem Paket gelieferte Vagrant-Konfiguration zu verwenden. Installieren Sie einfach VirtualBox, Vagrant und Ansible und führen Sie dann vagrant up . Eine speziell für die Entwicklung des Pakets konzipierte virtuelle Maschine wird für Sie erstellt und gestartet.
Bitte beachten Sie beim Beitragen die folgenden Richtlinien:
Der Codestil ist PSR-2
Schnittstellen sollten NICHT mit Interface versehen werden, Traits sollten NICHT mit Trait versehen werden.
Alle Methoden und Klassen müssen Dokumentblöcke enthalten.
Stellen Sie sicher, dass Sie Tests mit einer Mindestabdeckung von 100 % einreichen. Angesichts der Einfachheit des Projekts macht es einfach Sinn.
Wenn Sie eine Pull-Anfrage zum Hinzufügen neuer Funktionen planen, kann es sinnvoll sein, einen Vorschlag einzureichen, um die Kompatibilität mit den Projektzielen sicherzustellen.
Dieses Paket wird von Shawn McCool und Ihnen gepflegt!
Entfernen Sie die Unterstützung für Symfony 2. Insbesondere Symfony/Process-Versionen < 3.x
Dieses Paket ist unter der MIT-Lizenz lizenziert. Gehen Sie wild.