แพ็คเกจนี้มอบตัวจัดการสำรองข้อมูลฐานข้อมูลที่ไม่เชื่อเรื่องพระเจ้าแบบเฟรมเวิร์กสำหรับการดัมพ์และกู้คืนฐานข้อมูลจาก S3, Dropbox, FTP, SFTP และ Rackspace Cloud
ใช้เวอร์ชัน 2+ สำหรับ >=PHP 7.3
ใช้เวอร์ชัน 1 สำหรับ <PHP 7.2
ชมวิดีโอทัวร์ที่แสดงการทำงานของไดรเวอร์ Laravel เพื่อให้คุณเข้าใจว่าอะไรเป็นไปได้
รองรับ MySQL
และ PostgreSQL
บีบอัดด้วย Gzip
กรอบผู้ไม่เชื่อเรื่องพระเจ้า
การกำหนดค่าแบบง่ายที่ตายแล้ว
ไดรเวอร์ Laravel
ไดร์เวอร์ซิมโฟนี
ผู้จัดการการสำรองข้อมูลฐานข้อมูล
สารบัญ
รวดเร็วและสกปรก
ความต้องการ
การติดตั้ง
การใช้งาน
แนวทางการบริจาค
ผู้ดูแล
การแบ่งความเข้ากันได้แบบย้อนหลัง
ใบอนุญาต
กำหนดค่าฐานข้อมูลของคุณ
// config/database.php'development' => ['type' => 'mysql','host' => 'localhost','port' => '3306','user' => 'root',' pass' => 'password','database' => 'test',// หาก singleTransaction ถูกตั้งค่าเป็นจริง ธง --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 (like '--max-allowed-packet')'extraParams'=>null, - 'production' => ['type' => 'postgresql','host' => 'localhost','port' => '5432','user' => 'postgres','pass' => 'รหัสผ่าน' ,'ฐานข้อมูล' => 'ทดสอบ', -
กำหนดค่าระบบไฟล์ของคุณ
// config/storage.php'local' => ['type' => 'Local','root' => '/path/to/working/directory', ],'s3' => ['type' => 'AwsS3','key' => '','secret' => '','region' => 'us-east-1','version' = > 'ล่าสุด','bucket' => '','root' => '','use_path_style_endpoint' => false, ],'b2' => ['type' => 'B2','key' => '','accountId' => '','bucket' => '', ],'gcs' => ['type' => 'Gcs','key' => '','secret' => '','version' => 'ล่าสุด','bucket' => '', 'รูต' => '', ],'rackspace' => ['type' => 'Rackspace','ชื่อผู้ใช้' => '','key' => '','container' => '','zone' => '',' รูต' => '', ],'dropbox' => ['type' => 'DropboxV2','token' => '','key' => '','secret' => '','app' => '',' รูท' => '', ],'ftp' => ['type' => 'Ftp','host' => '','ชื่อผู้ใช้' => '','รหัสผ่าน' => '','root' => '',' port' => 21,'passive' => true,'ssl' => true,'timeout' => 30, ],'sftp' => ['type' => 'Sftp','host' => '','ชื่อผู้ใช้' => '','รหัสผ่าน' => '','root' => '',' พอร์ต' => 21,'หมดเวลา' => 10,'privateKey' => '', ],'flysystem' => ['type' => 'Flysystem','name' => 's3_backup',//'prefix' => 'upload',],'doSpaces' => ['type' => 'AwsS3','key' => '','secret' => '','region' => '','bucket' => '','root' => '','endpoint' => ' ','use_path_style_endpoint' => เท็จ, ],'webdav' => ['type' => 'Webdav','baseUri' => 'http://myserver.com','userName' => '','password' => '','คำนำหน้า ' => '', -
สำรอง / กู้คืนจากฐานข้อมูลที่กำหนดค่าไว้
สำรองฐานข้อมูลการพัฒนาไปยัง Amazon S3
เส้นทางการสำรองข้อมูล S3 จะเป็น test/backup.sql.gz
ในตอนท้ายเมื่อ gzip
เสร็จสิ้น
ใช้ BackupManagerFilesystemsDestination;$manager = need 'bootstrap.php';$manager->makeBackup()->run('development', [new Destination('s3', 'test/backup.sql')], 'gzip') ;
สำรอง / กู้คืนจากระบบไฟล์ที่กำหนดค่าไว้
กู้คืนไฟล์ฐานข้อมูล test/backup.sql.gz
จาก Amazon S3
ไปยังฐานข้อมูล development
$manager = need 'bootstrap.php';$manager->makeRestore()->run('s3', 'test/backup.sql.gz', 'การพัฒนา', 'gzip');
แพ็คเกจนี้ไม่อนุญาตให้คุณสำรองข้อมูลจากฐานข้อมูลประเภทหนึ่งและกู้คืนไปยังอีกประเภทหนึ่ง ดัมพ์ MySQL เข้ากันไม่ได้กับ PostgreSQL
พีเอชพี 5.5
การรองรับ MySQL ต้องใช้ไบนารีบรรทัดคำสั่ง mysqldump
และ mysql
การสนับสนุน PostgreSQL ต้องใช้ไบนารีบรรทัดคำสั่ง pg_dump
และ psql
การสนับสนุน Gzip ต้องใช้ไบนารีบรรทัดคำสั่ง gzip
และ gunzip
ผู้แต่ง
เรียกใช้สิ่งต่อไปนี้เพื่อรวมสิ่งนี้ผ่าน Composer
ผู้แต่งต้องการ backup-manager/backup-manager
จากนั้น คุณจะต้องเลือกแพ็คเกจที่เหมาะสมสำหรับอะแดปเตอร์ที่คุณต้องการใช้
# เพื่อรองรับ s3composer ต้องใช้ league/flysystem-aws-s3-v3# เพื่อรองรับ b2composer ต้องใช้ mhetreramesh/flysystem-backblaze# เพื่อรองรับ google cscomposer ต้องใช้ league/flysystem-aws-s3-v2# เพื่อติดตั้ง dropbox v2 drivercomposer ที่ต้องการ spatie/ flysystem-dropbox# เพื่อติดตั้งไดรเวอร์ dropbox v2 รุ่นเก่าต้องใช้ srmklive/flysystem-dropbox-v2# เพื่อรองรับ rackspacecomposer ต้องการ league/flysystem-rackspace# เพื่อรองรับ sftpcomposer need league/flysystem-sftp# เพื่อรองรับ webdav (สนับสนุนโดย owncloud nad อื่น ๆ อีกมากมาย) ผู้แต่งต้องการ league/flysystem-webdav
เมื่อติดตั้งแล้ว แพ็คเกจจะต้องบูตสแตรป (การกำหนดค่าเริ่มต้น) ก่อนจึงจะสามารถใช้งานได้
เราได้จัดเตรียมตัวอย่าง PHP ดั้งเดิมไว้ที่นี่
สามารถดูการบูตสแตรปปิ้งที่จำเป็นได้ในตัวอย่างที่นี่
เราขอแนะนำให้ใช้การกำหนดค่าคนเร่ร่อนที่มาพร้อมกับแพ็คเกจนี้เพื่อการพัฒนาและการสนับสนุน เพียงติดตั้ง VirtualBox, Vagrant และ Ansible จากนั้นเรียกใช้ vagrant up
ในโฟลเดอร์รูท เครื่องเสมือนที่ออกแบบมาเพื่อการพัฒนาแพ็คเกจโดยเฉพาะจะถูกสร้างขึ้นและเปิดตัวให้กับคุณ
เมื่อมีส่วนร่วม โปรดพิจารณาหลักเกณฑ์ต่อไปนี้:
รูปแบบโค้ดคือ PSR-2
อินเทอร์เฟซไม่ควรต่อท้ายด้วย Interface
ไม่ควรต่อท้าย Trait ด้วย Trait
วิธีการและคลาสทั้งหมดต้องมี docblocks
ตรวจสอบให้แน่ใจว่าคุณส่งการทดสอบที่มีความครอบคลุม 100% ขั้นต่ำ เมื่อพิจารณาถึงความเรียบง่ายของโครงการแล้ว มันก็สมเหตุสมผลดี
เมื่อวางแผนคำขอแบบดึงเพื่อเพิ่มฟังก์ชันการทำงานใหม่ อาจเป็นการดีกว่าที่จะส่งข้อเสนอเพื่อให้แน่ใจว่าเข้ากันได้กับเป้าหมายของโครงการ
แพ็คเกจนี้ดูแลโดย Shawn McCool และคุณ!
ลบการสนับสนุน Symfony 2 เฉพาะรุ่น Symfony/กระบวนการ < 3.x
แพคเกจนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT ไปป่า