Este paquete proporciona un administrador de respaldo de bases de datos independiente del marco para volcar y restaurar bases de datos desde S3, Dropbox, FTP, SFTP y Rackspace Cloud.
use la versión 2+ para >=PHP 7.3
use la versión 1 para <PHP 7.2
Mire un recorrido en video que muestra el controlador de Laravel en acción para darle una idea de lo que es posible.
soporta MySQL
y PostgreSQL
comprimir con Gzip
independiente del marco
configuración simple muerta
Controlador Laravel
Controlador Symfony
Administrador de copia de seguridad de base de datos
Tabla de contenido
Rápido y sucio
Requisitos
Instalación
Uso
Pautas de contribución
mantenedores
Saltos de compatibilidad con versiones anteriores
Licencia
Configura tus bases de datos.
// config/database.php'development' => ['tipo' => 'mysql','host' => 'localhost','port' => '3306','user' => 'root',' pass' => 'password','database' => 'test',// Si singleTransaction se establece en verdadero, se establecerá el indicador --single-transcation.// Esto es útil en bases de datos transaccionales como InnoDB.// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_single-transaction'singleTransaction' => false,// No volcar las tablas dadas// Establecer solo nombres de tablas, sin nombre de base de datos // Ejemplo: ['tabla1', 'tabla2']// http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_ignore-table'ignoreTables' => [],// usando ssl para conectarse a su base de datos - soporte ssl activo (solo mysql ):'ssl'=>false,// agrega opciones adicionales al comando dump (como '--paquete-max-permitido')'extraParams'=>null, ], 'producción' => ['tipo' => 'postgresql','host' => 'localhost','puerto' => '5432','usuario' => 'postgres','contraseña' => 'contraseña' ,'base de datos' => 'prueba', ],
Configure sus sistemas de archivos.
// config/storage.php'local' => ['tipo' => 'Local','root' => '/ruta/al/directorio/de trabajo', ],'s3' => ['tipo' => 'AwsS3','key' => '','secret' => '','region' => 'us-east-1','version' = > 'último','bucket' => '','root' => '','use_path_style_endpoint' => falso, ],'b2' => ['tipo' => 'B2','clave' => '','accountId' => '','bucket' => '', ],'gcs' => ['tipo' => 'Gcs','key' => '','secret' => '','version' => 'latest','bucket' => '', 'raíz' => '', ],'rackspace' => ['type' => 'Rackspace','username' => '','key' => '','container' => '','zone' => '',' raíz' => '', ],'dropbox' => ['type' => 'DropboxV2','token' => '','key' => '','secret' => '','app' => '',' raíz' => '', ],'ftp' => ['tipo' => 'FTp','host' => '','nombre de usuario' => '','contraseña' => '','root' => '',' puerto' => 21,'pasivo' => verdadero,'ssl' => verdadero,'tiempo de espera' => 30, ],'sftp' => ['tipo' => 'Sftp','host' => '','nombre de usuario' => '','contraseña' => '','root' => '',' puerto' => 21,'tiempo de espera' => 10,'privateKey' => '', ],'flysystem' => ['tipo' => 'Flysystem','nombre' => 's3_backup',//'prefix' => 'cargar',],'doSpaces' => ['tipo' => 'AwsS3','key' => '','secret' => '','region' => '','bucket' => '','root' => '','endpoint' => '','use_path_style_endpoint' => falso, ],'webdav' => ['tipo' => 'Webdav','baseUri' => 'http://myserver.com','nombre de usuario' => '','contraseña' => '','prefijo ' => '', ],
Copia de seguridad/restauración desde cualquier base de datos configurada.
Haga una copia de seguridad de la base de datos de desarrollo en Amazon S3
. La ruta de respaldo de S3 será test/backup.sql.gz
al final, cuando gzip
haya terminado con él.
use BackupManagerFilesystemsDestination;$manager = require 'bootstrap.php';$manager->makeBackup()->run('desarrollo', [nuevo destino('s3', 'test/backup.sql')], 'gzip') ;
Copia de seguridad/restauración desde cualquier sistema de archivos configurado.
Restaure el archivo de base de datos test/backup.sql.gz
de Amazon S3
a la base de datos development
.
$manager = requiere 'bootstrap.php';$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'desarrollo', 'gzip');
Este paquete no le permite realizar una copia de seguridad de un tipo de base de datos y restaurarla en otro. Un volcado de MySQL no es compatible con PostgreSQL.
PHP 5.5
La compatibilidad con MySQL requiere los binarios de línea de comandos mysqldump
y mysql
La compatibilidad con PostgreSQL requiere los binarios de línea de comandos pg_dump
y psql
La compatibilidad con gzip requiere los binarios de línea de comandos gzip
y gunzip
Compositor
Ejecute lo siguiente para incluir esto a través de Composer
El compositor requiere administrador de copias de seguridad/administrador de copias de seguridad.
Luego, deberá seleccionar los paquetes apropiados para los adaptadores que desea utilizar.
# para admitir s3composer requiere league/flysystem-aws-s3-v3# para admitir b2composer requiere mhetreramesh/flysystem-backblaze# para admitir google cscomposer requiere league/flysystem-aws-s3-v2# para instalar el controlador dropbox v2 preferidocomposer requiere spatie/ flysystem-dropbox# para instalar el drivercomposer heredado de dropbox v2 requiere srmklive/flysystem-dropbox-v2# para admitir rackspacecomposer requiere league/flysystem-rackspace# para admitir sftpcomposer requiere league/flysystem-sftp# para admitir webdav (compatible con owncloud y muchos otros)composer requiere league/flysystem-webdav
Una vez instalado, el paquete debe iniciarse (configuración inicial) antes de poder usarse.
Aquí proporcionamos un ejemplo de PHP nativo.
El arranque requerido se puede encontrar en el ejemplo aquí.
Recomendamos utilizar la configuración vagrant proporcionada con este paquete para desarrollo y contribución. Simplemente instale VirtualBox, Vagrant y Ansible y luego ejecute vagrant up
en la carpeta raíz. Se construirá y lanzará para usted una máquina virtual diseñada específicamente para el desarrollo del paquete.
Al contribuir, considere las siguientes pautas:
El estilo del código es PSR-2.
Las interfaces NO deben tener el sufijo Interface
, los rasgos NO deben tener el sufijo Trait
.
Todos los métodos y clases deben contener bloques de documentos.
Asegúrese de enviar pruebas que tengan una cobertura mínima del 100%. Dada la simplicidad del proyecto, simplemente tiene sentido.
Al planificar una solicitud de extracción para agregar nuevas funciones, puede ser conveniente enviar una propuesta para garantizar la compatibilidad con los objetivos del proyecto.
¡Este paquete es mantenido por Shawn McCool y usted!
Eliminar soporte para Symfony 2. Específicamente versiones de Symfony/proceso < 3.x
Este paquete tiene la licencia MIT. Vuélvete loco.