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.