Laravel Backup Restore — это пакет для восстановления резервных копий базы данных, выполненных с помощью пакета Laravel-backup Spatie:
Этот пакет предоставляет команду Artisan для восстановления резервной копии, а также некоторые настраиваемые проверки работоспособности и проверки целостности резервной копии. Вот пример команды Artisan из README проекта:
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);
// Мы предполагаем, что ваше приложение генерирует продажи каждый день.
// Эта проверка гарантирует, что база данных содержит продажи за вчерашний день.
$newSales = \App\Models\Sale::query()
->whereBetween('created_at', [
now()->subDay()->startOfDay(),
now()->subDay()->endOfDay()
])
->exists();
// Если вчера не было создано ни одной продажи, мы считаем восстановление неудачным.
if ($newSales === false) {
return $result->failed('База данных не содержит продаж со вчерашнего дня.');
}
return $result->ok();
}
}
Обязательно ознакомьтесь с файлом readme пакета для примера действия GitHub, которое вы можете использовать для постепенной проверки целостности резервного копирования.
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на GitHub.