lily-labs / db-backup
DBBackup 是一个库,提供了执行 mysqldump 以备份指定数据库、在本地文件系统中移动备份文件以及压缩生成的备份文件的类。
Requires
- php: ^7.1
- symfony/process: 2.8.*|3.0.*|3.1.*
Requires (Dev)
- larapack/dd: ^1.0
- phpunit/phpunit: ^7.0
This package is not auto-updated.
Last update: 2024-09-25 03:40:17 UTC
README
DBBackup 是一个库,提供了执行 mysqldump 以备份指定数据库、在本地文件系统中移动备份文件以及压缩生成的备份文件的类。
要求
- PHP 7.1+
- MySQL 客户端/服务器版本 5.6.x
- 服务器上的 Gzip(仅在 Unix 上测试过)
安装
您可以通过 composer 安装此包
composer require lily-labs/db-backup
为了使备份过程正常工作,需要在您的服务器上预先配置 mysql 的本地登录,使用 mysql_config_editor
,如下所示:
mysql_config_editor set --login-path=local --host=localhost --user=username --password
输入命令后,将询问您的数据库密码。
您可以在 这里 获取更多信息。
用法
首先创建一个 BackupFileNameGenerator
,这将生成备份文件的期望文件名,默认实现 LilyLabs\DBBackup\BasicBackupFileNameGenerator
将生成以下格式的文件名:"[database_name]_[year]-[month]-[day].sql"
use LilyLabs\DBBackup\BasicBackupFileNameGenerator; use LilyLabs\DBBackup\MysqldumpBackupProcessor; $db_name = "DBTest"; $date = new DateTime('now'); $filename_generator = new BasicBackupFileNameGenerator($db_name, $date); $filename = $filename_generator->getName(); // DBTest_[year]-[month]-[day].sql
现在,创建一个 LilyLabs\DBBackup\MysqldumpBackupProcessor
的实例以执行备份过程
$backup_processor = new MysqldumpBackupProcessor( $db_name, $filename_generator ); $backup_file = $backup_processor->execute();
返回的对象是 LilyLabs\DBBackup\DBBackupFile
的实例,所有备份都生成在 sys_get_temp_dir()
获取的临时文件夹中,您现在可以将文件移动到您想要的存储位置。
$moved_backup_file = $backup_file->move("/final/location/of/the/backup");
最后,您可以使用类 LilyLabs\DBBackup\GzipCompressor
来压缩备份文件
$compressor = new \LilyLabs\DBBackup\GzipCompressor; $compressed_backup_file = $compressor->compress($moved_backup_file);
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
贡献
有关详细信息,请参阅 CONTRIBUTING
安全
如果您发现任何与安全相关的问题,请通过电子邮件 mindacj@gmail.com 来报告,而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件