在Laravel中恢复数据库备份扩展包推荐: laravel-backup-restore
(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
并查看源代码。
相关文章