ichie-benjamin/lara-backup-manager

laravel 框架的简单文件和数据库备份及还原管理器

dev-main 2023-12-30 11:31 UTC

This package is auto-updated.

Last update: 2024-09-30 01:41:24 UTC


README

Lara-Backup-Manager 是一个灵活的 Laravel 扩展包,旨在简化 Laravel 应用的备份和还原过程。支持在 filesystem.php 配置中定义的各种存储选项,提供了灵活的数据备份管理方式。此外,该扩展包还允许自定义 HTTP 服务器集成存储,从而成为一个全面的数据安全保障方案。无论是创建常规备份还是无缝还原数据,Lara-Backup-Manager 都为 Laravel 项目提供了一个高效且用户友好的解决方案。

屏幕截图

Screenshot 1

Screenshot 2

Screenshot 3

需求

  • PHP >= 7.3
  • Laravel 6+
  • mysql(用于还原数据库)
  • mysqldump(用于备份数据库)
  • tar(用于备份/还原文件)
  • zcat(用于提取数据库存档)

请确保上述二进制文件已添加到 PATH 环境变量中,或者您可以在配置文件中指定它们的完整路径。

安装

通过 Composer

$ composer require ichie-benjamin/lara-backup-manager

(可选)将外观添加到 config/app.php 中的 aliases 部分

'BackupManager' => IchieBenjamin\LaraBackupManager\Facades\BackupManager::class,

通过运行以下命令发布包的文件

$ php artisan vendor:publish --provider="IchieBenjamin\LaraBackupManager\ServiceProvider"

它应该发布 config/lara-backup-manager.php 配置文件和迁移文件。

运行 php artisan migrate 创建备份验证表(verifybackup)。

最后,在 config/lara-backup-manager.php 文件中设置选项,并在您在 route 选项中指定的 URL(例如 http//yourapp.com/lara-backup-manager)打开备份管理器,您现在应该看到 BackupManager 的界面。

有关备份设置的信息,请参阅 config/lara-backup-manager.php 文件。

设置自动备份

要在 app/Console/Kernel.php 文件中设置自动备份,请放置以下内容

$schedule->command('backupmanager:create')->daily();
$schedule->command('backupmanager:create --only="db"')->everySixHours();

此包提供 GUI 界面来管理备份,同时以下命令也是可用的

  backupmanager:create                  Creates backup of files and/or database.
  backupmanager:create --only="db"      Creates backup of database only.
  backupmanager:create --only="files"   Creates backup of files only.
  backupmanager:list                    Shows list of backups taken.
  backupmanager:restore                 Restores a backup already taken.

将备份保存到其他磁盘

默认情况下,此包将备份保存到 local 磁盘,但您也可以使用 Laravel 文件系统的内置功能将备份保存到其他磁盘。假设您想要上传到具有 ftp 凭据的不同服务器,您需要将这些 ftp 凭据更新到 Laravel 的 config/filesystems.php 文件中的 ftp 磁盘设置下。一旦完成,在备份管理器配置文件(config/backupmanager.php)中指定您的磁盘为 ftp 而不是 local,例如

// define disk options
'disk' => 's3',

而不是

 'disk' => 'local',

现在备份文件将保存到 s3 而不是本地。

免责声明

此包与 Laravel 或其任何分支机构无关、维护、授权、认可或赞助。

安全

如果您发现任何安全相关的问题,请通过电子邮件ichiebenjamin联系,而不是使用问题跟踪器。

致谢

许可证

有关更多信息,请参阅 许可证文件