Laravel Backup Restore - это пакет для восстановления резервных копий баз данных, сделанных с помощью пакета laravel-backup от Spatie:
Добавление последних штрихов к laravel-backup-restore.
— Stefan Zweifel (@_stefanzweifel) May 31, 2023
В настоящее время пишу сообщение в блоге, объясняющее все.
v1 должен быть помечен к середине июня.
https://t.co/uRubDv4CDwЭтот пакет предоставляет команду Artisan для восстановления резервной копии, а также некоторые настраиваемые проверки работоспособности и целостности резервной копии. Ниже приведен пример команды 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();
}
}
Обязательно ознакомьтесь с файлом readme пакета, чтобы получить пример действия GitHub, которое можно использовать для инкрементальной проверки целостности резервной копии.
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть исходный код на GitHub.