在Laravel中恢复数据库备份扩展包推荐: laravel-backup-restore

2023-06-01 00:00:00 备份 扩展 恢复

(Laravel Backup Restore)Laravel备份恢复是一个包,用于恢复用Spatie的laravel-backup包做的数据库备份:

这个包提供了一个Artisan命令来恢复备份,以及一些可定制的健康检查和备份完整性检查。

下面是该项目README中的一个artisan命令的例子:

php artisan backup:restore
    --disk=s3
    --backup=latest
    --connection=mysql
    --password=my-secret-password
    --reset


在备份被恢复后,这个软件包将运行一些健康检查,以确保备份被成功恢复。

它检查的内容包括确保数据库有表。

你也可以添加你自己的自定义检查,你可以配置为在备份:

恢复后运行:

namespace App\HealthChecks;
 
use Wnx\LaravelBackupRestore\PendingRestore;
use Wnx\LaravelBackupRestore\HealthChecks\HealthCheck;
 
class MyCustomHealthCheck extends HealthCheck
{
    public function run(PendingRestore $pendingRestore): Result
    {
        $result = Result::make($this);
 
        // We assume that your app generates sales every day.
        // This check ensures that the database contains sales from yesterday.
        $newSales = \App\Models\Sale::query()
            ->whereBetween('created_at', [
                now()->subDay()->startOfDay(),
                now()->subDay()->endOfDay()
            ])
            ->exists();
 
        // If no sales were created yesterday, we consider the restore as failed.
        if ($newSales === false) {
            return $result->failed('Database contains no sales from yesterday.');
        }
 
        return $result->ok();
    }
}

请务必查看该软件包的自述,了解一个GitHub动作的例子,

https://github.com/stefanzweifel/laravel-backup-restore#check-backup-integrity-automatically-with-github-actions

你可以用它来增量验证备份的完整性。


你可以在GitHub上了解更多关于这个包的信息,获得完整的安装说明,

https://github.com/stefanzweifel/laravel-backup-restore

并查看源代码。


相关文章