Este pacote fornece um gerenciador de backup de banco de dados independente de estrutura para descarregar e restaurar bancos de dados do S3, Dropbox, FTP, SFTP e Rackspace Cloud.
use a versão 2+ para >=PHP 7.3
use a versão 1 para <PHP 7.2
Assista a um vídeo tour mostrando o driver Laravel em ação para ter uma ideia do que é possível.
suporta MySQL
e PostgreSQL
compactar com Gzip
independente de estrutura
configuração simples e morta
Driver Laravel
Driver Symfony
Gerenciador de backup de banco de dados
Índice
Rápido e Sujo
Requisitos
Instalação
Uso
Diretrizes de Contribuição
Mantenedores
Quebras de compatibilidade com versões anteriores
Licença
Configure seus bancos de dados.
// config/database.php'development' => ['type' => 'mysql','host' => 'localhost','port' => '3306','user' => 'root',' pass' => 'password','database' => 'test',// Se singleTransaction for definido como true, o sinalizador --single-transcation será definido.// Isso é útil em bancos de dados transacionais como InnoDB.// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_single-transaction'singleTransaction' => false,// Não despeje as tabelas fornecidas // Defina apenas nomes de tabelas, sem nome de banco de dados // Exemplo: ['tabela1', 'tabela2']// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_ignore-table'ignoreTables' => [],// usando SSL para conectar-se ao seu banco de dados - suporte SSL ativo (apenas mysql ):'ssl'=>false,// adiciona opções adicionais ao dump-command (como '--max-allowed-packet')'extraParams'=>null, ], 'produção' => ['type' => 'postgresql','host' => 'localhost','port' => '5432','user' => 'postgres','pass' => 'password' ,'banco de dados' => 'teste', ],
Configure seus sistemas de arquivos.
// config/storage.php'local' => ['type' => 'Local','root' => '/caminho/para/diretório/de trabalho', ],'s3' => ['type' => 'AwsS3','key' => '','secret' => '','region' => 'us-east-1','version' = > 'mais recente','bucket' => '','root' => '','use_path_style_endpoint' => falso, ],'b2' => ['type' => 'B2','key' => '','accountId' => '','bucket' => '', ],'gcs' => ['type' => 'Gcs','key' => '','secret' => '','version' => 'latest','bucket' => '', 'raiz' => '', ],'rackspace' => ['type' => 'Rackspace','username' => '','key' => '','container' => '','zone' => '',' raiz' => '', ],'dropbox' => ['type' => 'DropboxV2','token' => '','key' => '','secret' => '','app' => '',' raiz' => '', ],'ftp' => ['type' => 'Ftp','host' => '','nome de usuário' => '','senha' => '','root' => '',' porta' => 21,'passivo' => verdadeiro,'ssl' => verdadeiro,'tempo limite' => 30, ],'sftp' => ['type' => 'Sftp','host' => '','nome de usuário' => '','senha' => '','root' => '',' porta' => 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' => falso, ],'webdav' => ['type' => 'Webdav','baseUri' => 'http://myserver.com','userName' => '','password' => '','prefix ' => '', ],
Backup para/restauração de qualquer banco de dados configurado.
Faça backup do banco de dados de desenvolvimento no Amazon S3
. O caminho de backup do S3 será test/backup.sql.gz
no final, quando gzip
terminar.
use BackupManagerFilesystemsDestination;$manager = require 'bootstrap.php';$manager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip') ;
Backup para/restauração de qualquer sistema de arquivos configurado.
Restaure o arquivo de banco de dados test/backup.sql.gz
do Amazon S3
para o banco de dados development
.
$manager = require 'bootstrap.php';$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'development', 'gzip');
Este pacote não permite fazer backup de um tipo de banco de dados e restaurar para outro. Um dump MySQL não é compatível com PostgreSQL.
PHP 5.5
O suporte ao MySQL requer binários de linha de comando mysqldump
e mysql
O suporte ao PostgreSQL requer binários de linha de comando pg_dump
e psql
O suporte ao Gzip requer binários de linha de comando gzip
e gunzip
Compositor
Execute o seguinte para incluir isso via Composer
compositor requer gerenciador de backup/gerenciador de backup
Em seguida, você precisará selecionar os pacotes apropriados para os adaptadores que deseja usar.
# para suportar s3composer requer league/flysystem-aws-s3-v3# para suportar b2composer requer mhetreramesh/flysystem-backblaze# para suportar google cscomposer requer league/flysystem-aws-s3-v2# para instalar o driver dropbox v2 preferidocomposer necessário spatie/ flysystem-dropbox# para instalar o drivercomposer legado do dropbox v2 requer srmklive/flysystem-dropbox-v2# para suportar rackspacecomposer requer league/flysystem-rackspace# para suportar sftpcomposer requer league/flysystem-sftp# para suportar webdav (suportado por owncloud e muitos outros)composer requer league/flysystem-webdav
Uma vez instalado, o pacote deve ser inicializado (configuração inicial) antes de poder ser usado.
Fornecemos um exemplo nativo de PHP aqui.
A inicialização necessária pode ser encontrada no exemplo aqui.
Recomendamos usar a configuração vagrant fornecida com este pacote para desenvolvimento e contribuição. Basta instalar o VirtualBox, o Vagrant e o Ansible e executar vagrant up
na pasta raiz. Uma máquina virtual projetada especificamente para o desenvolvimento do pacote será construída e lançada para você.
Ao contribuir, considere as seguintes diretrizes:
O estilo do código é PSR-2
Interfaces NÃO devem ter o sufixo Interface
, Traits NÃO devem ter o sufixo Trait
.
Todos os métodos e classes devem conter docblocks.
Certifique-se de enviar testes com cobertura mínima de 100%. Dada a simplicidade do projeto, faz sentido.
Ao planejar uma solicitação pull para adicionar novas funcionalidades, pode ser aconselhável enviar uma proposta para garantir a compatibilidade com os objetivos do projeto.
Este pacote é mantido por Shawn McCool e você!
Remova o suporte para symfony 2. Especificamente versões do symfony/process <3.x
Este pacote está licenciado sob a licença MIT. Vá à loucura.