이 패키지는 S3, Dropbox, FTP, SFTP 및 Rackspace Cloud에서 데이터베이스를 덤프하고 복원하기 위한 프레임워크에 구애받지 않는 데이터베이스 백업 관리자를 제공합니다.
>=PHP 7.3에는 버전 2+를 사용하세요.
<PHP 7.2에는 버전 1을 사용하세요.
Laravel 드라이버의 실제 작동 모습을 보여주는 비디오 투어를 시청하면 무엇이 가능한지 알 수 있습니다.
MySQL
및 PostgreSQL
지원합니다.
Gzip
으로 압축
프레임워크에 구애받지 않음
아주 간단한 구성
라라벨 드라이버
심포니 드라이버
데이터베이스 백업 관리자
목차
빠르고 더러운
요구사항
설치
용법
기여 지침
유지관리자
이전 버전과의 호환성 중단
특허
데이터베이스를 구성하십시오.
// 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-command에 추가 옵션을 추가합니다(예: '--max-allowed-packet')'extraParams'=>null, ], '프로덕션' => ['유형' => 'postgresql','host' => 'localhost','port' => '5432','user' => 'postgres','pass' => 'password' ,'데이터베이스' => '테스트', ],
파일 시스템을 구성하십시오.
// config/storage.php'local' => ['type' => 'Local','root' => '/path/to/working/directory', ],'s3' => ['유형' => 'AwsS3','key' => '','비밀' => '','region' => 'us-east-1','version' = > '최신','버킷' => '','root' => '','use_path_style_endpoint' => false, ],'b2' => ['유형' => 'B2','key' => '','accountId' => '','bucket' => '', ],'gcs' => ['유형' => 'Gcs','key' => '','비밀' => '','버전' => '최신','버킷' => '', '루트' => '', ],'rackspace' => ['type' => 'Rackspace','username' => '','key' => '','container' => '','zone' => '',' 루트' => '', ],'dropbox' => ['type' => 'DropboxV2','token' => '','key' => '','secret' => '','app' => '',' 루트' => '', ],'ftp' => ['유형' => 'Ftp','host' => '','사용자 이름' => '','password' => '','root' => '',' 포트' => 21,'passive' => true,'ssl' => true,'timeout' => 30, ],'sftp' => ['유형' => 'Sftp','host' => '','사용자 이름' => '','password' => '','root' => '',' 포트' => 21,'시간 초과' => 10,'privateKey' => '', ],'flysystem' => ['type' => 'Flysystem','name' => 's3_backup',//'prefix' => '업로드',],'doSpaces' => ['type' => 'AwsS3','key' => '','secret' => '','region' => '','bucket' => '','root' => '','endpoint' => '','use_path_style_endpoint' => 거짓, ],'webdav' => ['type' => 'Webdav','baseUri' => 'http://myserver.com','userName' => '','password' => '','prefix ' => '', ],
구성된 데이터베이스에서 백업/복원.
개발 데이터베이스를 Amazon S3
에 백업합니다. S3 백업 경로는 gzip
완료되면 결국 test/backup.sql.gz
가 됩니다.
BackupManagerFilesystemsDestination 사용;$manager = 'bootstrap.php' 필요;$manager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip') ;
구성된 파일 시스템에서 백업/복원.
Amazon S3
의 데이터베이스 파일 test/backup.sql.gz
development
데이터베이스로 복원합니다.
$manager = require '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 드라이버 구성 요소를 설치하려면 필요합니다. srmklive/flysystem-dropbox-v2# 랙스페이스를 지원하려면composer는 League/flysystem-rackspace#이 필요합니다. sftpcomposer를 지원하려면 League/flysystem-sftp#이 필요합니다. webdav를 지원하려면 League/flysystem-sftp#이 필요합니다(owncloud에서 지원되며 기타 여러 가지)컴포저에는 League/flysystem-webdav가 필요합니다
일단 설치되면 패키지를 사용하기 전에 부트스트랩(초기 구성)을 수행해야 합니다.
여기에 기본 PHP 예제가 제공되었습니다.
필요한 부트스트래핑은 여기 예제에서 찾을 수 있습니다.
개발 및 기여를 위해 이 패키지와 함께 제공되는 vagrant 구성을 사용하는 것이 좋습니다. VirtualBox, Vagrant 및 Ansible을 설치한 다음 루트 폴더에서 vagrant up
실행하기만 하면 됩니다. 패키지 개발을 위해 특별히 설계된 가상 머신이 구축되어 실행됩니다.
기여할 때 다음 지침을 고려하십시오.
코드 스타일은 PSR-2입니다.
인터페이스에는 Interface
가 붙으면 안 되며, Traits에는 Trait
접미사가 붙으면 안 됩니다.
모든 메소드와 클래스에는 docblock이 포함되어 있어야 합니다.
최소한 100% 적용 범위를 갖는 테스트를 제출해야 합니다. 프로젝트의 단순성을 고려하면 이는 의미가 있습니다.
새로운 기능을 추가하기 위해 풀 요청을 계획할 때 프로젝트 목표와의 호환성을 보장하기 위해 제안서를 제출하는 것이 현명할 수 있습니다.
이 패키지는 Shawn McCool과 귀하가 관리합니다!
Symfony 2에 대한 지원을 제거합니다. 특히 Symfony/process 버전 < 3.x
이 패키지는 MIT 라이선스에 따라 라이선스가 부여됩니다. 야생으로 가십시오.