lily-labs/db-backup

DBBackup 是一个库,提供了执行 mysqldump 以备份指定数据库、在本地文件系统中移动备份文件以及压缩生成的备份文件的类。

v0.2.2 2023-08-29 22:50 UTC

This package is not auto-updated.

Last update: 2024-09-25 03:40:17 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

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)。有关更多信息,请参阅 许可证文件